[sdk/kdesrc-build/docbook_historied_per_file] doc: Eliminate distinction between `prefix` and `install-dir`

2024-05-10 Thread Andrew Shark
Git commit 3d5459c7177e61a10e243789922e0dc885b45e98 by Andrew Shark.
Committed on 14/01/2024 at 01:38.
Pushed by ashark into branch 'docbook_historied_per_file'.

Eliminate distinction between `prefix` and `install-dir`

We will not use `--prefix` cli option or `prefix` config option anymore, 
because it means same thing what `install-dir` was meant for.

- For those who used '$MODULE' or '${MODULE}' in the `prefix` config option, we 
now will make that substitution in `install-dir` config option.
- Add a warning message if the prefix config option still found in user config

Closes #141

Original commit: 9b8ccbfe
https://invent.kde.org/sdk/kdesrc-build/-/commit/9b8ccbfe26bc751f42df49b2dc15f4a1ea886480

M  +3-4doc/cmdline/supported-cmdline-params.docbook
M  +7-17   doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/3d5459c7177e61a10e243789922e0dc885b45e98

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index ab7923bc..71993bdc 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -526,11 +526,10 @@ 
linkend="cmdline-refresh-build">--refresh-build is used.
 
 
 
-
---prefix /path/to/kde
+
+--install-dir path
 
-This allows you to change the directory that  will be installed to from
-the command line.  This option implies --reconfigure,
 but using --refresh-build
 may still be required.
diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index e74858b1..86e35dbb 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -791,11 +791,17 @@ flag.
 TypeString
 Default value~/kde/usr
 
-This option sets the directory that  will be installed to after it
+This option controls where to install the module after it
 is built. If you
 change this to a directory needing root access, you may want to read about the
 make-install-prefix option as
 well.
+
+Changing this option for specific module allows you to install it to a 
different directory than
+where the  Platform libraries are installed, such as if you were using
+ only to build applications.
+You can use ${MODULE} or $MODULE
+in the path to have them expanded to the module's name.
 
 
 
@@ -1001,22 +1007,6 @@ the auto-detection. In this case you can manually 
specify the correct build type
 
 
 
-
-prefix
-
-
-TypeString
-
-This option controls where to install the module (normally the
-install-dir setting 
is used).
-Using this option allows you to install a module to a different directory than
-where the KDE Platform libraries are installed, such as if you were using
- only to build applications.
-You can use ${MODULE} or $MODULE
-in the path to have them expanded to the module's name.
-
-
-
 
 purge-old-logs
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Move --list-installed to kdesrc-build

2024-05-10 Thread Andrew Shark
Git commit b0a0889e854870508c3552c17c7ee7c9de8da01a by Andrew Shark.
Committed on 17/02/2024 at 14:09.
Pushed by ashark into branch 'docbook_historied_per_file'.

Move --list-installed to kdesrc-build

Original commit: 733b4924
https://invent.kde.org/sdk/kdesrc-build/-/commit/733b492414f2c1e49986106070f05cf68cd1a752

M  +9-0doc/cmdline/supported-cmdline-params.docbook

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

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index a6d1a9aa..fb02d2d3 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -350,6 +350,15 @@ kdepim: master
 
 
 
+
+--list-installed
+
+
+Print installed modules and exit. This can be used to generate autocompletion 
for the --run option.
+
+
+
+
 
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Add build-system query mode

2024-05-10 Thread Andrew Shark
Git commit cfe814deaf97af88fcf007c198206e70d0964868 by Andrew Shark.
Committed on 10/02/2024 at 12:33.
Pushed by ashark into branch 'docbook_historied_per_file'.

Add build-system query mode

Original commit: 139fdc94
https://invent.kde.org/sdk/kdesrc-build/-/commit/139fdc94f4e4a469ff3b0f245a3626f3b58e3556

M  +4-0doc/cmdline/supported-cmdline-params.docbook

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

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 86eaf976..95367ed7 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -306,6 +306,10 @@ one of the following:
 output the name of module-set which contains the module. This can be 
used
 to generate zsh autocompletion cache.
 
+build-system, which causes 
 to
+output the name of build system detected for the module. This can be 
used
+to debug build system auto-detection problems, or when developing 
tests for specific build systems.
+
 Any option name that is valid for modules in the
 configuration file.
 



[sdk/kdesrc-build/docbook_historied_per_file] doc: Add "generate-vscode-project-config" option

2024-05-10 Thread Andrew Shark
Git commit 6bd9334789b5b00a4e4bfc4a5fbf922f2a8b23dd by Andrew Shark, on behalf 
of Kristen McWilliam.
Committed on 02/12/2023 at 16:16.
Pushed by ashark into branch 'docbook_historied_per_file'.

Add "generate-vscode-project-config" option

This change adds `generate-vscode-project-config` option for `kdesrc-buildrc`
and the corresponding command line flag.

When set to `true`, kdesrc-build will create the `.vscode` folder
in the module source directory with configuration that makes VSCode to work
properly with KDE projects, such as setting the correct build
directory & enabling support for C++, CMake, LSP & IntelliSense.

The process specifically checks for an existing `.vscode` folder,
in case the user already has custom settings present - and only
proceeds if it does not exist yet.

Closes #84

Original commit: 1d9b2355
https://invent.kde.org/sdk/kdesrc-build/-/commit/1d9b2355c10db4d8825cefe06c73b07d0b4f4373

M  +8-0doc/cmdline/supported-cmdline-params.docbook
M  +27   -0doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/6bd9334789b5b00a4e4bfc4a5fbf922f2a8b23dd

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index ded50d26..5818d7a6 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -105,6 +105,14 @@ Enable colorful output. (This is the default for 
interactive terminals).
 
 
 
+
+--generate-vscode-project-config
+
+Generate a .vscode directory with configurations for building and debugging 
+in Visual Studio Code.
+
+
+
 
 --nice=value
 
diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index 038b25e0..2f26df6f 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -809,6 +809,33 @@ due to changes in the project metadata.
 
 
 
+
+generate-vscode-project-config
+
+
+
+TypeBoolean
+Default valueFalse
+   
+
+Module setting overrides global
+
+Set this option to true to make 
+ create VS Code project files (.vscode directory) in the module 
+source directory.
+
+The .vscode folder will be created in the project source directory, only 
+if it does not already exist. The configurations will enable the use of LSP, 
+building, debugging, and running the project from within VS Code.
+
+The configuration also recommends extensions to install that are useful 
+for working on most KDE projects.
+
+You can also use the 
+--generate-vscode-project-config command line 
flag.
+
+
+
 
 include-dependencies
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: doc: Define scopes for modules selection options

2024-05-10 Thread Andrew Shark
Git commit 43eee5b154b425e6ed3072eee4b3635d64c8efb0 by Andrew Shark.
Committed on 29/01/2024 at 21:21.
Pushed by ashark into branch 'docbook_historied_per_file'.

doc: Define scopes for modules selection options

Original commit: d974610e
https://invent.kde.org/sdk/kdesrc-build/-/commit/d974610efba6140798b10d13d092558e9226f796

M  +16   -16   doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/43eee5b154b425e6ed3072eee4b3635d64c8efb0

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index 345ef74e..b35d520c 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -1,17 +1,16 @@
 
 Table of available configuration options
 
-Here is a table of the various options, containing the following
+Here are tables of various options, containing the following
 information:
 
 
 
 The option name
 
-A description of how  responds if the option is
-set in both the global section, and the module section of the configuration file while building a
-module.
+The scope of the option: global, 
module or module-set.
+Options in module or/and module-set 
scope can also be defined in options sections.
+
 
 Special comments on the purpose and usage of the
 option.
@@ -1316,7 +1315,7 @@ installations. However this only works on build systems 
that support
 
 
 no-src
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove update phase. The other phases that were 
presented will still be processed.
 Related command-line option: 
@@ -1325,7 +1324,7 @@ installations. However this only works on build systems 
that support
 
 
 no-install
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove install phase. The other phases that were 
presented will still be processed.
 Related command-line option: 
@@ -1334,7 +1333,7 @@ installations. However this only works on build systems 
that support
 
 
 no-tests
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove test phase. The other phases that were 
presented will still be processed.
 Related command-line option: --no-tests
@@ -1343,7 +1342,7 @@ installations. However this only works on build systems 
that support
 
 
 no-build
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove build phase. The other phases that were 
presented will still be processed.
 Related command-line option: 
@@ -1352,7 +1351,7 @@ installations. However this only works on build systems 
that support
 
 
 build-only
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 If had build phase, remove any other phases. 
Otherwise, remove all phases.
 Related command-line option: 
@@ -1361,7 +1360,7 @@ installations. However this only works on build systems 
that support
 
 
 install-only
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 If had install phase, remove any other phases. 
Otherwise, remove all phases.
 Related command-line option: 
@@ -1370,7 +1369,7 @@ installations. However this only works on build systems 
that support
 
 
 uninstall
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 If had uninstall phase, remove any other phases. 
Otherwise, remove all phases.
 Related command-line option: --uninstall
@@ -1379,7 +1378,7 @@ installations. However this only works on build systems 
that support
 
 
 filter-out-phases
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove those phases that are listed (space separated) in this option. 
The other phases that were presented will still be processed.
 
@@ -1390,12 +1389,13 @@ installations. However this only works on build systems 
that support
 
 
 
-Module-set and global scope options
+Modules selection options
 
 
 
 
 Option name
+Scope
 Description
 
 
@@ -1404,12 +1404,12 @@ installations. However this only works on build systems 
that support
 
 
 ignore-modules
+globalmodule-set
 
 
 TypeString
 Available since1.16
 
-This option can be used in global section and in module-sets.
 Note that when specified in global section,  cmdline 
option does not override this, but instead appends.
 Modules named by this option, which would be chosen by 
 due to a use-modules option, are
@@ -1436,12 +1436,12 @@ is compared).
 
 
 use-modules
+module-set
 
 
 TypeString
 Available since1.12.1
 
-Can only be used in module-set.
 This option allows you to easily
 specify many different modules to build at the same point in the configuration file.



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Remove --print-modules and --list-build options

2024-05-10 Thread Andrew Shark
Git commit 75b4b0eb0cb4e472b7ca1c58dd2cc77839a6855f by Andrew Shark.
Committed on 10/02/2024 at 09:37.
Pushed by ashark into branch 'docbook_historied_per_file'.

Remove --print-modules and --list-build options

There are already `--query module-set` and `--query branch` options, no need to 
create unnecessarily entities.

The --list-build tree indentation was not properly implemented, but made 
correctly in dependency-tree.

The #dependency-level sticky option was never set, so print-modules indentation 
was broken forever.

The zsh completion script relied on --list-build option and needs to be 
reworked.

Original commit: 08c6bb39
https://invent.kde.org/sdk/kdesrc-build/-/commit/08c6bb39486fc51aca90a20708f65ee3ae7eb0eb

M  +0-48   doc/cmdline/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/75b4b0eb0cb4e472b7ca1c58dd2cc77839a6855f

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index b52bf204..86eaf976 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -323,54 +323,6 @@ kdepim: master
 
 
 
-
-
---print-modules
-
-
-Takes all actions up to and including dependency reordering of the modules
-specified on the command line (or configuration file), prints the modules
-that would be processed one per line, and then exits without further 
action.
-
-
-The kde-project metadata is downloaded first (though, 
see
---pretend or --no-src).
-
-
-The output is not fully compatible with usage by scripts as other output 
messages
-may be generated until the module list is shown.
-
-
-This is mostly just useful for quickly determining what 
-understands a module's dependencies to be, which means it's only useful for
-kde-projects
-modules.  This option is also compatible with --resume-from, --resume-after,
---stop-before,
---stop-after.
-
-
-
-
---list-build
-
-
-Lists the modules that would be built, in the order in which they would be 
built.
-If applicable, the output listing also mentions which commit/branch/tag 
would be
-selected for checkout.
-
-
-This option is similar to
---print-modules.
-For more detailed information on how modules relate to each other, see 
also:
---dependency-tree.
-
-
-
-
 
 --dependency-tree
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: query: Make behavior the same when one module is queried

2024-05-10 Thread Andrew Shark
Git commit 7e3a739d6aa461802c2cca38bdc904ae4aa82f4a by Andrew Shark.
Committed on 05/02/2024 at 14:20.
Pushed by ashark into branch 'docbook_historied_per_file'.

query: Make behavior the same when one module is queried

Original commit: 49ec03c7
https://invent.kde.org/sdk/kdesrc-build/-/commit/49ec03c7dca5a0cabaeb54fb34a9100dd6c2b2e4

M  +0-7doc/cmdline/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/7e3a739d6aa461802c2cca38bdc904ae4aa82f4a

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 7c4f8f31..4cb6e494 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -307,13 +307,6 @@ one of the following:
 
 
 
-
-If a single module is passed on the command line, then the output is simply the
-value of the parameter being queried. If multiple (or no) modules are passed on
-the command line, then each line is prefixed by the name of the module. Either 
way,
- stops running once each value is output.
-
-
 
 For example, the command kdesrc-build
 --query branch 
kactivities 
kdepim



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: RecursiveFH: Support variables in include lines

2024-05-10 Thread Andrew Shark
Git commit 17b9fd13a5236d572d3e502811e91d1cb604477b by Andrew Shark.
Committed on 02/02/2024 at 08:07.
Pushed by ashark into branch 'docbook_historied_per_file'.

RecursiveFH: Support variables in include lines

Original commit: 399806c1
https://invent.kde.org/sdk/kdesrc-build/-/commit/399806c1efd4514b75c9f1254bb4b408f02a7221

M  +12   -0doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/17b9fd13a5236d572d3e502811e91d1cb604477b

diff --git a/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook 
b/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook
index 0ac0cf6f..3469e11d 100644
--- a/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook
+++ b/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook
@@ -219,6 +219,18 @@ end global
 the file will be searched for starting from the directory containing the source
 file. This works recursively as well.
 
+You can use variables in the value of include instruction:
+
+global
+  _ver 6
+  source-dir ~/kde${_ver}/src
+  ...
+  persistent-data-file 
~/kde${_ver}/persistent-options.json
+end global
+
+include 
~/kde6/src/kdesrc-build/data/build-include/kf${_ver}-qt${_ver}.ksb
+
+
 
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Remove update-shellrc step

2024-05-10 Thread Andrew Shark
Git commit ba7e1d479cb21d3fa05efbd4a88adaae539f084d by Andrew Shark.
Committed on 15/02/2024 at 11:44.
Pushed by ashark into branch 'docbook_historied_per_file'.

Remove update-shellrc step

It basically just added to the shellrc the path to the running script. That is 
not handled correctly in all cases.

Also, it tried to add kdesrc-run bash autocompletion, but the code was not 
handling all cases correctly anyway.

Instead, we will offer to install the file in the correct place in the first 
place.
Regarding PATH, that should be in user's control.

Original commit: 5d7dcace
https://invent.kde.org/sdk/kdesrc-build/-/commit/5d7dcacee6fd89feae01f197e278f61a1ddead8b

M  +1-12   doc/cmdline/supported-cmdline-params.docbook

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

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index c3202192..a6d1a9aa 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -564,12 +564,11 @@ software to run.
 
 Installing known dependencies (on supported  
distributions)
 Adding required environment variables to 
~/.bashrc
-Setting up a configuration 
file
 
 This option is exactly equivalent to using
 --install-distro-packages
 --generate-config
---update-shellrc at the same 
time.
+at the same time.
 
 
 
@@ -593,16 +592,6 @@ Generate the  configuration file.
 
 
 
-
---update-shellrc
-
-Edit the "~/.bashrc" (or other shell rc file) to add  to your 
$PATH variable and enable autocompletion.
-
-See also --initial-setup
-
-
-
-
 
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: doc: List --run in commonly used options

2024-05-10 Thread Andrew Shark
Git commit 219908425b341589dc901d7158b7a687e0d121ef by Andrew Shark.
Committed on 20/02/2024 at 21:29.
Pushed by ashark into branch 'docbook_historied_per_file'.

doc: List --run in commonly used options

Reference full documentation from --help. No need to keep yet another place of 
options listing.

Original commit: 19044150
https://invent.kde.org/sdk/kdesrc-build/-/commit/19044150a44a2f7a18d89a1e74dbcc0b5f696c6e

M  +54   -42   doc/cmdline/cmdline-usage.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/219908425b341589dc901d7158b7a687e0d121ef

diff --git a/doc/cmdline/cmdline-usage.docbook 
b/doc/cmdline/cmdline-usage.docbook
index 3bad3988..e0110ce9 100644
--- a/doc/cmdline/cmdline-usage.docbook
+++ b/doc/cmdline/cmdline-usage.docbook
@@ -14,48 +14,6 @@ kdesrc-build will build all modules defined in its 
configuration file, in the
 order listed in that file (although this can be modified by various
 configuration file options).
 
-
-Commonly used command line options
-
-The full list of command line options is given in . The most-commonly used options
-include:
-
-
-  
---pretend (or -p)
-This option causes  to indicate what actions
-it would take, without actually really implementing them. This can be
-useful to make sure that the modules you think you are building will
-actually get built.
-  
-
-  
---refresh-build
-This option forces  to build the given
-modules from an absolutely fresh start point. Any existing build directory
-for that module is removed and it is rebuilt. This option is useful if you
-have errors building a module, and sometimes is required when  or 
-libraries change.
-  
-
-  
---no-src
-This option skips the source update process. You might use
-it if you have very recently updated the source code (perhaps you did it
-manually or recently ran ) but still want to rebuild some
-modules.
-  
-
-  
---no-build
-This option is similar to --no-src above,
-but this time the build process is skipped.
-  
-
-
-
-
 
 Specifying modules to build
 
@@ -93,4 +51,58 @@ option before building a new module set to ensure it is only 
building the
 modules you want.
 
 
+
+
+Commonly used command line options
+
+
+  
+--pretend (or -p)
+This option causes  to indicate what 
actions
+  it would take, without actually really implementing them. This can be
+  useful to make sure that the modules you think you are building will
+  actually get built.
+  
+  
+  
+--no-src
+This option skips the source update process. You might 
use
+  it if you have very recently updated the source code (perhaps you 
did it
+  manually or recently ran ) but still want to rebuild 
some
+  modules.
+  
+  
+  
+--no-include-dependencies (or 
-D)
+Only process the selected modules, skipping their 
dependencies.
+  Useful when you have changed only selected modules, and you are sure 
you
+  do not need to rebuild the others.
+  
+  
+  
+--refresh-build (or -r)
+This option forces  to build the given
+  modules from an absolutely fresh start point. Any existing build 
directory
+  for that module is removed and it is rebuilt. This option is useful 
if you
+  have errors building a module, and sometimes is required when  
or 
+  libraries change.
+  
+  
+  
+--resume-from module
+Skips modules until just before the given module, then 
operates as normal.
+  Useful when the previous build failed on specific module, you fixed 
it, and then you
+  want to continue the with building the rest of initial set of 
modules.
+  
+  
+  
+--run module
+Launch the built application.
+  
+
+  
+  The full list of command line options is given in .
+  
+  
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Fix default value for "directory-layout" option

2024-05-10 Thread Andrew Shark
Git commit b638608f66252e84f507afb8cd56b7f7c65c05c2 by Andrew Shark.
Committed on 09/01/2024 at 07:52.
Pushed by ashark into branch 'docbook_historied_per_file'.

Fix default value for "directory-layout" option

It was silently allowed to have unset "directory-layout" option value, that was 
treated as "metadata" value.

Previously, it defaulted to "metadata". Then commit 7fe7c940 (BUG: 461279) 
changed the default value in documentation to "flat", but not in the code.

This commit treats any incorrect value (not one of "flat", "invent", 
"metadata"), including empty string, as a "flat" value with warning.

Add the forgotten default BuildContext value, and add it in FirstRun.

Original commit: 642bdc2e
https://invent.kde.org/sdk/kdesrc-build/-/commit/642bdc2e326f8eae6cbc2a07bfe37fc1044952b9

M  +8-7doc/kdesrc-buildrc/conf-options-table.docbook

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

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index c23c2c1b..e74858b1 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -695,10 +695,11 @@ on also use that proxy server, if possible, by setting the
 TypeString
 Valid valuesflat,
 invent, metadata
+Default valueflat
 
 This option is used to configure the layout which  should 
use when
 creating source and build directories.
-The flat layout is the default value, and will 
group all modules
+The flat layout will group all modules
 directly underneath the top level source and build directories. For example,
 source/extragear/network/telepathy/ktp-text-ui in the 
metadata
 layout would be source/ktp-text-ui using the 
flat layout
@@ -727,19 +728,19 @@ due to changes in the project metadata.
 
 TypeBoolean
 Default valueFalse
-   
+
 
 Module setting overrides global
 
-Set this option to true to make 
- create VS Code project files (.vscode directory) in the module 
+Set this option to true to make
+ create VS Code project files (.vscode directory) in the module
 source directory.
 
-The .vscode folder will be created in the project source directory, only 
-if it does not already exist. The configurations will enable the use of LSP, 
+The .vscode folder will be created in the project source directory, only
+if it does not already exist. The configurations will enable the use of LSP,
 building, debugging, and running the project from within VS Code.
 
-The configuration also recommends extensions to install that are useful 
+The configuration also recommends extensions to install that are useful
 for working on most KDE projects.
 
 You can also use the 



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: doc: Add related cli options to the config options table

2024-05-10 Thread Andrew Shark
Git commit f42ffd21926b310715e8ab7ccd0c4dc850380f82 by Andrew Shark.
Committed on 24/01/2024 at 22:36.
Pushed by ashark into branch 'docbook_historied_per_file'.

doc: Add related cli options to the config options table

Original commit: 54b5af83
https://invent.kde.org/sdk/kdesrc-build/-/commit/54b5af830ceb16b844a81b4707cb3e5a9ac943ef

M  +63   -8doc/kdesrc-buildrc/conf-options-table.docbook

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

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index e19ac4d0..0573f12d 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -40,7 +40,9 @@ option.
 
 This option enables the asynchronous mode of operation, where the source
 code update and the build process will be performed in parallel, instead of 
waiting for
-all of the source code updates before starting the build 
process.
+all of the source code updates before starting the build process.
+Related command-line option: 
+
 
 
 
@@ -52,6 +54,7 @@ all of the source code updates before starting the build 
process.
 Note that  will not output the
 color codes to anything but a terminal (such as xterm, , or the normal
  console).
+Related command-line option: 
 
 
 
@@ -67,6 +70,7 @@ color codes to anything but a terminal (such as xterm, 
, or the normal
 make sure that if you are using ssh-agent, it is actually managing some 
 identities. This is to try and prevent  from asking for your pass phrase
 for every module.
+Related command-line option: --disable-agent-check, 
--no-disable-agent-check
 
 
 
@@ -137,6 +141,7 @@ also disabled.
 unless you also pass the --delete-my-settings
 command-line option.
+Related command-line option: --install-environment-driver, 
--no-install-environment-driver
 
 
 
@@ -167,6 +172,7 @@ option to false.  If enabled, 
this feature also enabl
 unless you also pass the --delete-my-settings
 command-line option.
+Related command-line option: --install-session-driver, 
--no-install-session-driver
 
 
 
@@ -180,6 +186,7 @@ command-line option.
 Set this option to a number between 20 and 0. The higher the number, the
 lower a priority  will set for itself, i.e. the higher the
 number, the "nicer" the program is.
+Related command-line option: 
 
 
 
@@ -198,6 +205,7 @@ number of CPUs, this value is set to 4.
 
 See  for an example of this
 option's usage.
+Related command-line option: --num-cores 
value
 
 
 
@@ -225,6 +233,7 @@ any module in the same way that num-cores 
is used.
 If  cannot detect available memory then this value will be
 set to 2.
 
+Related command-line option: --num-cores-low-mem 
value
 
 
 
@@ -245,6 +254,7 @@ be saved to 
~/.local/state/kdesrc-build-data
 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.
 
+Related command-line option: --persistent-data-file 
file
 
 
 
@@ -273,6 +283,7 @@ linkend="ssh-agent-reminder"/>.
 Use lower priority for disk and other I/O, which can significantly 
improve the
 responsiveness of the rest of the system at the expense of slightly longer
 running times for .
+Related command-line option: --use-idle-io-priority, 
--no-use-idle-io-priority
 
 
 
@@ -284,6 +295,7 @@ running times for .
 Default valueFalse
 
 Allow kdesrc-build to also clone and pull from repositories marked as 
inactive.
+Related command-line option: --use-inactive-modules, 
--no-use-inactive-modules
 
 
 
@@ -319,6 +331,7 @@ variable should include the colon-separated paths of your 
development
 toolchain. The paths ${install-dir}/bin 
and
 ${qt-install-dir}/bin are automatically 
added. You
 may use the tilde (~) for any paths you add using this option.
+Related command-line option: --binpath 
path
 
 
 
@@ -333,6 +346,7 @@ may use the tilde (~) for any paths you add using this 
option.
 For most  modules you probably wish to use the branch-group option instead and use this
 option for case-by-case exceptions.
+Related command-line option: --branch 
value
 
 
 
@@ -369,6 +383,7 @@ modules (the common case).  See also .
 
 
+Related command-line option: --branch-group 
value
 
 
 
@@ -404,6 +419,7 @@ 
class="directory">/home/user-name/builddir.
 
 
 Perhaps surprisingly, this option can be changed per module.
+Related command-line option: --build-dir 
path
 
 
 
@@ -431,6 +447,7 @@ other optimizations, there are trade-offs for the 
correctness of your
 installation. For instance, changes to the qt or kdelibs modules may cause
 a rebuild of other modules to be necessary, even if the source code doesn't
 change at all.
+Related command-line option: 
 
 
 
@@ -450,7 +467,9 @@ as if unset.
 
 Note that if a valid generator is also specified through
 cmake-options it will override the
-value for cmake-generator.
+value for cmake-generator.
+Related command-l

[sdk/kdesrc-build/docbook_historied_per_file] doc: Allow ignoring modules from global config

2024-05-10 Thread Andrew Shark
Git commit 24f6b604e110113070dfef7e3d3951fbe55a1a2f by Andrew Shark.
Committed on 28/01/2024 at 07:28.
Pushed by ashark into branch 'docbook_historied_per_file'.

Allow ignoring modules from global config

This will let users to constantly ignore specified modules in global section, 
so they do not need to pass it in command line each time.

Also, it will allow to ignore some defined modules that are not in any module 
set (for example, gpgme).

BUG: 472917

Original commit: 66bff6dc
https://invent.kde.org/sdk/kdesrc-build/-/commit/66bff6dc56039cc75bcc64bc5a7c6fb38f9b1e82

M  +3-1doc/cmdline/supported-cmdline-params.docbook
M  +2-2doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/24f6b604e110113070dfef7e3d3951fbe55a1a2f

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 494a3363..7c4f8f31 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -53,7 +53,9 @@ Do not include the modules passed on the rest of the command 
line in the
 update/build process (this is useful if you want to build most of the modules
 in your configuration file and just skip
 a few).
-
+
+Note that this option does not override ignore-modules config option in global 
section. Instead, it appends it.
+
 
 
 
diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index 8722b1ae..ed52e6bc 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -1335,8 +1335,8 @@ installations. However this only works on build systems 
that support
 TypeString
 Available since1.16
 
-Currently can only be used in module-set, see https://bugs.kde.org/show_bug.cgi?id=472917;>Bug 472917.
+This option can be used in global section and in module-sets.
+Note that when specified in global section,  cmdline 
option does not override this, but instead appends.
 Modules named by this option, which would be chosen by 
 due to a use-modules option, are
 instead skipped entirely. Use this option when you want to build an entire



[sdk/kdesrc-build/docbook_historied_per_file] doc/using-kdesrc-build: doc: Create table of debug levels

2024-05-10 Thread Andrew Shark
Git commit ada8af00cd80e5f217cdb3999ae9382a5709ce12 by Andrew Shark.
Committed on 24/02/2024 at 16:26.
Pushed by ashark into branch 'docbook_historied_per_file'.

doc: Create table of debug levels

Original commit: fd57dd66
https://invent.kde.org/sdk/kdesrc-build/-/commit/fd57dd6695550f522a2c2c16d09d1ca9bfee6ad1

M  +52   -19   doc/using-kdesrc-build/other-features.docbook

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

diff --git a/doc/using-kdesrc-build/other-features.docbook 
b/doc/using-kdesrc-build/other-features.docbook
index 96215a58..c42d97fe 100644
--- a/doc/using-kdesrc-build/other-features.docbook
+++ b/doc/using-kdesrc-build/other-features.docbook
@@ -6,25 +6,58 @@
  has several options to control the amount of output the
 script generates. In any case, errors will always be output.
 
-
-The --quiet option (short form is
--q) causes  to be mostly silent. Only important
-messages, warnings, or errors will be shown. When available, build progress
-information is still shown.
-
-The --really-quiet option (no short form)
-causes  to only display important warnings or errors while it is
-running.
-
-The --verbose option (short form is
--v) causes  to be very detailed in its
-output.
-
-The --debug option is for debugging purposes
-only, it causes  to act as if --verbose was
-turned on, causes commands to also output to the terminal, and will display
-debugging information for many functions.
-
+
+  Table of debug levels
+  
+  
+  
+
+  Debug level
+  Level name
+  Command line option
+
+  
+  
+  
+  
+0
+DEBUG
+--debug
+  
+
+  
+1
+WHISPER
+--verbose
+  
+  
+  
+2
+INFO
+Selected by default
+  
+  
+  
+3
+NOTE
+--quiet
+  
+  
+  
+4
+WARNING
+--really-quiet
+  
+  
+  
+5
+ERROR
+No way to select
+  
+  
+  
+  
+
 
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Merge kdesrc-build --run and kdesrc-run

2024-05-10 Thread Andrew Shark
Git commit 9113a2a9a8b27dd9f70e812fa958367cfa9dcec6 by Andrew Shark.
Committed on 17/02/2024 at 17:50.
Pushed by ashark into branch 'docbook_historied_per_file'.

Merge kdesrc-build --run and kdesrc-run

This fixes multiple issues with kdesrc-run and kdesrc-build --run

When using the --run parameter, the environment variables of global module were 
applied (from set-env options). But this is incorrect, since global cannot be 
treated as usual module. Its build system is defined as generic. In its 
prepareModuleBuildEnvironment these variables were setted:
- PKG_CONFIG_PATH
- LD_LIBRARY_PATH
- PATH
They have nothing to do with launched module's variables, except PATH, but even 
that was because of global install-dir matches the module's install-dir in most 
cases.

The kdesrc-run did sourced module's prefix.sh instead (located in its 
build-dir). That setted the following variables:
- PATH (the correct, from module)
- XDG_DATA_DIRS
- XDG_CONFIG_DIRS
- QT_PLUGIN_PATH
- QML2_IMPORT_PATH
- QT_QUICK_CONTROLS_STYLE_PATH

This commit fixes the broken behavior of --run, and the broken behavior of 
kdesrc-run.

Fixes: #145
Fixes: #114

Other fixes:
- Now the parameters after --run that starts with minuses are passed to the 
start-program, and not considered as options of kdesrc-build
- When setting parameters to the runned executable, they are actually applied. 
Previously the run script surrounded the $@ in the quotes.
- Fixed indentation and unnecessary semicolons in executable script.
- Made more clear note information when launching. The debug level controls if 
it will be displayed.

Original commit: 301b9b4c
https://invent.kde.org/sdk/kdesrc-build/-/commit/301b9b4caf1b84bf2e14bd616fec06683f5a2d18

M  +3-23   doc/cmdline/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/9113a2a9a8b27dd9f70e812fa958367cfa9dcec6

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index fb02d2d3..2a8014b6 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -59,31 +59,11 @@ a few).
 
 
 
---run (or 
--start-program) program [parameters 
...]
+--run (or 
--start-program) [-e|--exec name] [-f|--fork] 
program [parameters ...]
 
 This option interprets the next item on the command line as a program to run,
-and  will then finish reading the configuration file, update the
-environment as normal, and then execute the given program.
-
-This will not work to start a shell with the  environment
-in most cases however, since interactive shells typically reset at least part
-of the environment variables (such as PATH and
-${install-dir}) in the startup sequence.
-
-
-If you want to see the environment used by , you
-can run the printenv command:
-
-$ kdesrc-build --run 
printenv
-KDE_SESSION_VERSION=4
-SDL_AUDIODRIVER=alsa
-LANGUAGE=
-XCURSOR_THEME=Oxygen_Blue
-LESS=-R -M --shift 5
-QMAIL_CONTROLDIR=/var/qmail/control
-... etc.
-
-
+and  will then finish reading the configuration file, source the
+prefix.sh to apply environment variables, and then execute the given 
program.
 
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Use distro-dependencies defined in repo-metadata

2024-05-10 Thread Andrew Shark
Git commit 4d3784b2b6b8c2c67ac6ef0c6cd6d3ee2af47f5a by Andrew Shark.
Committed on 18/02/2024 at 11:02.
Pushed by ashark into branch 'docbook_historied_per_file'.

Use distro-dependencies defined in repo-metadata

Distro dependencies (data/pkg) moved here: 
https://invent.kde.org/sysadmin/repo-metadata/-/tree/master/distro-dependencies

Original commit: 75bfc436
https://invent.kde.org/sdk/kdesrc-build/-/commit/75bfc43675938761ee0f23efa36ebbfd70ea0322

M  +1-0doc/cmdline/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/4d3784b2b6b8c2c67ac6ef0c6cd6d3ee2af47f5a

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 2a8014b6..25ccfc7c 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -558,6 +558,7 @@ software to run.
 --install-distro-packages
 --generate-config
 at the same time.
+In kdesrc-build (perl implementation) it additionally uses 
"--install-distro-packages-perl".
 
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Cmdline: Use -M as short form of --no-metadata

2024-05-10 Thread Andrew Shark
Git commit c9e12ff425d114fc071eea9a2c17b91ee28d4671 by Andrew Shark.
Committed on 14/02/2024 at 09:45.
Pushed by ashark into branch 'docbook_historied_per_file'.

Cmdline: Use -M as short form of --no-metadata

Original commit: 6bcfb320
https://invent.kde.org/sdk/kdesrc-build/-/commit/6bcfb3205897b8d0b40f66e88f7ee155076f79e4

M  +1-1doc/cmdline/supported-cmdline-params.docbook

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

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 95367ed7..c3202192 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -358,7 +358,7 @@ kdepim: master
 
 
 
---no-metadata
+--no-metadata (or 
-M)
 
 Do not automatically download the extra metadata needed for  git modules.
 The source updates for the modules themselves will still occur unless you pass



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: query: Add module-set query mode

2024-05-10 Thread Andrew Shark
Git commit 8ed4a1a3ccd135c7bbf68acb03b9ab45694371f1 by Andrew Shark.
Committed on 05/02/2024 at 15:28.
Pushed by ashark into branch 'docbook_historied_per_file'.

query: Add module-set query mode

This can be used for example for querying all defined modules and module-sets, 
for preparing zsh autocompletion cache

Original commit: abe4cf12
https://invent.kde.org/sdk/kdesrc-build/-/commit/abe4cf121e3691008de810105bb6f1e7901945b6

M  +4-0doc/cmdline/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/8ed4a1a3ccd135c7bbf68acb03b9ab45694371f1

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 4cb6e494..b52bf204 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -302,6 +302,10 @@ one of the following:
 linkend="conf-branch">branch and branch-group settings in effect.
 
+module-set, which causes 
 to
+output the name of module-set which contains the module. This can be 
used
+to generate zsh autocompletion cache.
+
 Any option name that is valid for modules in the
 configuration file.
 



[sdk/kdesrc-build/docbook_historied_per_file] doc: Rename qtdir option to qt-install-dir

2024-05-10 Thread Andrew Shark
Git commit a3230652ba0ab05f2b2213515fe5f65565e80694 by Andrew Shark.
Committed on 17/01/2024 at 16:57.
Pushed by ashark into branch 'docbook_historied_per_file'.

Rename qtdir option to qt-install-dir

Also remove usage of ancient environment variable QTDIR, which is not used 
today.

CC: #142

Original commit: 2a2f6fd7
https://invent.kde.org/sdk/kdesrc-build/-/commit/2a2f6fd7a956a3657908b91dfe074c544e954e74

M  +6-7doc/appendix-profile/old-profile-setup.docbook
M  +2-2doc/features/features-overview.docbook
M  +0-1doc/index.docbook
M  +7-7doc/kdesrc-buildrc/conf-options-table.docbook
M  +1-1doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook
M  +1-6doc/using-kdesrc-build/basic-features.docbook

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

diff --git a/doc/appendix-profile/old-profile-setup.docbook 
b/doc/appendix-profile/old-profile-setup.docbook
index 987925fe..8942b9fe 100644
--- a/doc/appendix-profile/old-profile-setup.docbook
+++ b/doc/appendix-profile/old-profile-setup.docbook
@@ -25,25 +25,24 @@ and add to the end of the file:
 If you are building the qt module (you are by default), add instead:
 
 
-QTDIR=(path to qtdir)   # Such as ~/kdesrc/build/qt by default.
-PATH=${install-dir}/bin:$QTDIR/bin:$PATH
-MANPATH=$QTDIR/doc/man:$MANPATH
+PATH=${install-dir}/bin:${qt-install-dir}/bin:$PATH
+MANPATH=${qt-install-dir}/doc/man:$MANPATH
 
 # Act appropriately if LD_LIBRARY_PATH is not already set.
 if [ -z $LD_LIBRARY_PATH ]; then
-  LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib
+  LD_LIBRARY_PATH=${install-dir}:/lib:${qt-install-dir}/lib
 else
-  LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib:$LD_LIBRARY_PATH
+  LD_LIBRARY_PATH=${install-dir}:/lib:${qt-install-dir}/lib:$LD_LIBRARY_PATH
 fi
 
-export QTDIR PATH MANPATH LD_LIBRARY_PATH
+export PATH MANPATH LD_LIBRARY_PATH
 
 
 or, if you are not building qt (and are using your system  instead), add
 this instead:
 
 
-PATH=${install-dir}/bin:$QTDIR/bin:$PATH
+PATH=${install-dir}/bin:${qt-install-dir}/bin:$PATH
 
 # Act appropriately if LD_LIBRARY_PATH is not already set.
 if [ -z $LD_LIBRARY_PATH ]; then
diff --git a/doc/features/features-overview.docbook 
b/doc/features/features-overview.docbook
index 3f6c9de1..6637dc14 100644
--- a/doc/features/features-overview.docbook
+++ b/doc/features/features-overview.docbook
@@ -142,7 +142,7 @@ a base  single-user installation from the anonymous 
source repositories.
 
 Tilde-expansion for your configuration options. For example, you can
 specify:
-qtdir ~/kdesrc/build/qt
+install-dir ~/kde/usr
 
 
 
@@ -163,7 +163,7 @@ Forced full rebuilds, by running
 
 
 You can specify various environment values to be used during the build,
-including QTDIR, DO_NOT_COMPILE,
+including DO_NOT_COMPILE
 and CXXFLAGS.
 
 
diff --git a/doc/index.docbook b/doc/index.docbook
index a7dcc0d2..748187ca 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -39,7 +39,6 @@
 
   configure-flags'>
   install-dir'>
-  qtdir'>
   build-dir'>
   source-dir'>
   colorful-output'>
diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index 7ee10c94..be58e68b 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -316,8 +316,8 @@ running times for .
 You cannot override this setting in a module option. The default value is
 the $PATH that is set when the script starts. This environment
 variable should include the colon-separated paths of your development
-toolchain. The paths install-dir/bin and
-$QTDIR/bin are 
automatically added. You
+toolchain. The paths ${install-dir}/bin 
and
+${install-dir}/bin are automatically 
added. You
 may use the tilde (~) for any paths you add using this option.
 
 
@@ -811,7 +811,7 @@ in the path to have them expanded to the module's 
name.
 Default valueAuto detected
 
 Set this option to change the default name of the installed library 
directory
-inside ${install-dir} and $QTDIR. On many systems this is either
+inside ${install-dir} and ${qt-install-dir}. On many systems this is either
 "lib" or "lib64". Auto-detection is attempted to set the correct name by 
default,
 but if the guess is wrong then it can be changed with this setting.
 
@@ -827,7 +827,7 @@ but if the guess is wrong then it can be changed with this 
setting.
 LD_LIBRARY_PATH while building. You cannot override this setting
 in a module option. The default value is blank, but the paths ${install-dir}/$LIBNAME and 
$QTDIR/$LIBNAME are 
automatically added.
+class="directory">${qt-install-dir}/$LIBNAME are 
automatically added.
 You may use the tilde (~) for any paths you add using this option.
 
 
@@ -1033,13 +1033,13 @@ installs the module.
 
 
 
-
-qtdir
+
+qt-install-dir
 
 
 TypeString
 
-Set this option to set the environment variable QTDIR 
while building.
+This option controls 

[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Fix git-repository-base option

2024-05-10 Thread Andrew Shark
Git commit 31ff822811e6823777de3f7a61e3eba980336ac9 by Andrew Shark.
Committed on 26/01/2024 at 04:17.
Pushed by ashark into branch 'docbook_historied_per_file'.

Fix git-repository-base option

Before this commit, only the last occurrence of this option was applied to the 
build context.

Now we actually can use it several times in the global section, as it was 
intended.

- The actual reading of 'git-repository-base' was done when constructing 
OptionBase from the global section of the config.
- The merging options from the constructed OptionsBase object into the 
BuildContext was done in setOption of BuildContext, but because it was not 
properly handled in OptionsBase, only the last value was appeared in 
BuildContext's handling.
- Now it is handled in the OptionsBase also when merging (we expect that the 
type of value is a hash then).
- Remove incorrect placement of 'git-repository-base' to the checking of 
module-set option in the Module, so our BuildContex::setOption can call its 
parent class Module::setOption, which then can pass this option handling to its 
parent class OptionsBase::setOption.

Also:
- Move endWord suggestion next to the printed message. The actual endWord does 
not matter when parsing, so it makes code a bit more readable when 
understanding how it parses
- Edit comment so it better explains why we remove some options that we read 
from the config
- Move the config description in docbook to the correct scope

Original commit: 56023880
https://invent.kde.org/sdk/kdesrc-build/-/commit/5602388099291523942b475b51a2f6a2334012af

M  +60   -59   doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/31ff822811e6823777de3f7a61e3eba980336ac9

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index 0573f12d..8722b1ae 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -108,6 +108,66 @@ protocol is most efficient.
 
 
 
+
+git-repository-base
+
+
+TypeString
+Available since1.12.1
+
+This option is used to create a short
+name to reference a specific Git repository base URL in later module set declarations, which is useful for
+quickly declaring many Git modules to build.
+
+You must specify two things (separated by a space): The name to assign
+to the base URL, and the actual base URL itself. For example:
+
+
+
+global
+# other options
+# This is the common path to all anonymous Git server modules.
+git-repository-base kde-git 
kde:
+end global
+
+# Module declarations
+
+module-set
+# Now you can use the alias you defined earlier, but 
only in a module-set.
+repository kde-git
+use-modules 
module1.git module2.git
+end module-set
+
+
+
+The module-set's use-modules option created two 
modules
+internally, with  behaving as if it had read:
+
+
+module module1
+repository kde:module1.git
+end module
+
+module module2
+repository kde:module2.git
+end module
+
+
+The kde:  repository prefix used above is a
+shortcut which will be setup by  automatically. See the TechBase
+https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL
+Renaming article for more information. Note that unlike most other
+options, this option can be specified multiple times in order to create as
+many aliases as necessary.
+
+It is not required to use this option to take advantage of 
module-set,
+this option exists to make it easy to use the same repository across many
+different module sets.
+
+
+
 
 install-environment-driver
 
@@ -1267,65 +1327,6 @@ installations. However this only works on build systems 
that support
 
 
 
-
-git-repository-base
-
-
-TypeString
-Available since1.12.1
-
-This option is used to create a short
-name to reference a specific Git repository base URL in later module set declarations, which is useful for
-quickly declaring many Git modules to build.
-
-You must specify two things (separated by a space): The name to assign
-to the base URL, and the actual base URL itself. For example:
-
-
-
-global
-# other options
-# This is the common path to all anonymous Git server modules.
-git-repository-base kde-git 
kde:
-end global
-
-# Module declarations
-
-module-set
-# Now you can use the alias you defined earlier, but 
only in a module-set.
-repository kde-git
-use-modules 
module1.git module2.git
-end module-set
-
-
-
-The module-set's use-modules option created two 
modules
-internally, with  behaving as if it had read:
-
-
-module module1
-repository kde:module1.git
-end module
-
-module module2
-repository kde:module2.git
-end module
-
-
-The kde:  repository prefix used above is a
-shortcut which will be setup by  automatically. See the TechBase
-https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL
-Renaming article for more information. Note that unlike most other
-options, this option can be specified multiple times in

[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: doc: Group cli parameters to logical sections

2024-05-10 Thread Andrew Shark
Git commit 3665f792bc29c1072848f42671e7b62a27dda820 by Andrew Shark.
Committed on 07/01/2024 at 09:09.
Pushed by ashark into branch 'docbook_historied_per_file'.

doc: Group cli parameters to logical sections

- Indicate mandatory parameters of options.
- Add missing (undocumented) alternative option names
- Change semantic markup "parameter" -> "option" to differentiate with changing 
part ("replaceable")
- Fix some grammar

The https://l10n.kde.org/docs/doc-primer/actions-and-commands.html does not 
describe (at the moment of writing) the "parameter" tag for some reason.

Original commit: 5d7e870d
https://invent.kde.org/sdk/kdesrc-build/-/commit/5d7e870dd7658498d427451aed386a60063e0e80

M  +495  -479  doc/cmdline/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/3665f792bc29c1072848f42671e7b62a27dda820

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index f5c288dd..3114de5f 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -1,227 +1,254 @@
 
 Supported command-line parameters
 
-
-The script accepts the following command-line options:
-
-
+
+Generic
 
 
-
---async
-
-Enables the asynchronous mode, which can
-perform the source code updates and module builds at the same time.  This is
-the default, this option only needs specified if you have disabled it in the
-configuration.
-
-
-
-
---help (or -h)
+
+--pretend (or --dry-run or 
-p)
 
-Only display simple help on this script.
-
-
+ will run through the update and build process, but instead of
+performing any actions to update or build, will instead output what the
+script would have done (e.g. what commands to run, general steps being taken,
+etc.).
 
-
---version (or -v)
-
-Display the program version.
-
-
+Simple read-only commands (such as reading file information) may
+still be run to make the output more relevant (such as correctly simulating
+whether source code would be checked out or updated).
+
 
-
---show-info
-
-Displays information about  and the operating system, that may
-prove useful in bug reports or when asking for help in forums or mailing lists.
-
-Available since version 18.11.
+This option requires that some needed metadata is available,
+which is normally automatically downloaded, but downloads are disabled in
+pretend mode. If you've never run  (and therefore, don't have
+this metadata), you should run kdesrc-build
+--metadata-only to download the required metadata
+first.
+
 
 
 
-
---initial-setup
+
+--include-dependencies (or -d), 
--no-include-dependencies (or -D)
 
-Has  perform the one-time initial setup necessary to prepare
-the system for  to operate, and for the newly-installed 
-software to run.
-
-This includes:
-
-Installing known dependencies (on supported  
distributions)
-Adding required environment variables to 
~/.bashrc
-Setting up a configuration 
file
-
-This option is exactly equivalent to using
---install-distro-packages
---generate-config
---update-shellrc at the same 
time.
-
-
-
+This option causes  to automatically include other  and 
+modules in the build, if required for the modules you have requested to build
+on the command line or in your
+configuration file.
 
-
---install-distro-packages
-
-Installs distro packages (on supported  distributions) necessary to 
prepare the system for  to operate, and for the newly-installed 

-software to run.
-
-See also --initial-setup
+The modules that are added are as recorded within the  source code
+management system. See .
+
+The corresponding configuration file option is
+include-dependencies.
+
+This option is enabled by default.
 
 
 
-
---generate-config
+
+--ignore-modules (or -!) 
module [module ...]
 
-Generate the  configuration file.
-
-See also --initial-setup
-
+Do not include the modules passed on the rest of the command line in the
+update/build process (this is useful if you want to build most of the modules
+in your configuration file and just skip
+a few).
+
 
 
-
---update-shellrc
+
+--run (or --start-program) 
program [parameters ...]
 
-Edit the "~/.bashrc" (or other shell rc file) to add  to your 
$PATH variable and enable autocompletion.
+This option interprets the next item on the command line as a program to run,
+and  will then finish reading the configuration file, update the
+environment as normal, and then execute the given program.
+
+This will not work to start a shell with the  environment
+in most cases however, since interactive shells typically reset at least part
+of the environment variables (such as PATH and
+${install-dir}) in the startup sequence.
 
-See also --initial-setup
+
+If you want to see the environment used by , you
+can run the printenv command:
+
+$ kdesrc-build --run 
printenv
+KDE_SESSION_VERSION=4
+SDL_AUDIODRIVER=alsa
+LANGUAGE=
+XCURSOR_THEME=Oxygen_Blue
+LESS=-R -M --shift 5
+QMAIL_CONTROLD

[sdk/kdesrc-build/docbook_historied_per_file] doc: doc: Add self links to the listed entries

2024-05-10 Thread Andrew Shark
Git commit ccfbc22e4e3b0bfeba955a8fe9c3b8cd40792806 by Andrew Shark.
Committed on 16/01/2024 at 19:55.
Pushed by ashark into branch 'docbook_historied_per_file'.

doc: Add self links to the listed entries

Currently, the anchors are not rendered, see 
https://bugs.kde.org/show_bug.cgi?id=479910

To workaround, we will use links to the items itself, so users could easily 
copy and share the link to the option.

Original commit: 4e0a8ad0
https://invent.kde.org/sdk/kdesrc-build/-/commit/4e0a8ad0db52e3f519214c740aa21ea7f0efa5c8

M  +53   -53   doc/cmdline/supported-cmdline-params.docbook
M  +60   -60   doc/kdesrc-buildrc/conf-options-table.docbook

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

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 219c9099..494a3363 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -6,7 +6,7 @@
 
 
 
---pretend (or --dry-run or 
-p)
+--pretend (or 
--dry-run or -p)
 
  will run through the update and build process, but instead of
 performing any actions to update or build, will instead output what the
@@ -29,7 +29,7 @@ first.
 
 
 
---include-dependencies (or -d), 
--no-include-dependencies (or -D)
+--include-dependencies 
(or -d), --no-include-dependencies (or 
-D)
 
 This option causes  to automatically include other  and 
 modules in the build, if required for the modules you have requested to build
@@ -47,7 +47,7 @@ management system. See .
 
 
 
---ignore-modules (or -!) 
module [module ...]
+--ignore-modules (or 
-!) module [module ...]
 
 Do not include the modules passed on the rest of the command line in the
 update/build process (this is useful if you want to build most of the modules
@@ -57,7 +57,7 @@ a few).
 
 
 
---run (or --start-program) 
program [parameters ...]
+--run (or 
--start-program) program [parameters 
...]
 
 This option interprets the next item on the command line as a program to run,
 and  will then finish reading the configuration file, update the
@@ -86,7 +86,7 @@ QMAIL_CONTROLDIR=/var/qmail/control
 
 
 
---revision id
+--revision 
id
 
 This option causes  to checkout a specific numbered revision
 for each  module, overriding any branch,
@@ -99,7 +99,7 @@ compatibility with older scripts.
 
 
 
---delete-my-patches, 
--no-delete-my-patches
+--delete-my-patches, 
--no-delete-my-patches
 
 This option is used to let  delete source directories that may
 contain user data, so that the module can be re-downloaded. This would normally
@@ -112,7 +112,7 @@ deleted).
 
 
 
---delete-my-settings, 
--no-delete-my-settings
+--delete-my-settings, 
--no-delete-my-settings
 
 This option is used to let  overwrite existing files which may 
contain
 user data.
@@ -123,8 +123,8 @@ with it if it is needed.
 
 
 
-
---option-name 
value
+
+--option-name
 value
 
 You can use this option to override an option in your configuration file for
 every module. For instance, to override the 
 
 
-
---set-module-option-value 
module-name,option-name,option-value
+
+--set-module-option-value 
module-name,option-name,option-value
 
 You can use this option to override an option in your configuration file for
 a specific module.
@@ -159,7 +159,7 @@ a specific module.
 
 
 
---resume-from (or --from or 
-f) module
+--resume-from (or 
--from or -f) 
module
 This option is used to resume the build starting from the 
given module. You should not
 specify other module names on the command line.
 
@@ -176,7 +176,7 @@ build.
 
 
 
---resume-after (or --after or 
-a) module
+--resume-after (or 
--after or -a) 
module
 
 This option is used to resume the build starting after the given module. You 
should not
 specify other module names on the command line.
@@ -195,7 +195,7 @@ module.
 
 
 
---resume
+--resume
 
 
 This option can be used to run  after it has had a build failure.
@@ -211,7 +211,7 @@ building the modules you were building before, without 
fiddling with
 
 
 
---stop-before (or --until) 
module
+--stop-before (or 
--until) module
 
 This option is used to stop the normal build process just
 before a module would ordinarily be built.
@@ -224,7 +224,7 @@ then --stop-before 
moduleB would cau
 
 
 
---stop-after (or --to) 
module
+--stop-after 
(or --to) module
 
 This option is used to stop the normal build process just
 after a module would ordinarily be built.
@@ -237,7 +237,7 @@ then --stop-after 
moduleB would caus
 
 
 
---stop-on-failure, 
--no-stop-on-failure
+--stop-on-failure, 
--no-stop-on-failure
 
 This option controls if the build will be aborted as soon as a failure occurs.
 Default behavior is --stop-on-failure. You may override it if you wish to 
press on with the rest of the modules in the build,
@@ -248,7 +248,7 @@ See also the stop-on-failure configu
 
 
 
---rebuild-failures
+--rebuild-failures
 
 Use this option to build only those modules which failed to build on a previous
  run

[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Add --show-options-specifiers option

2024-05-10 Thread Andrew Shark
Git commit d921bdd7368d4f95b9fc6f0c05f8e58988d286a4 by Andrew Shark.
Committed on 15/01/2024 at 17:23.
Pushed by ashark into branch 'docbook_historied_per_file'.

Add --show-options-specifiers option

Original commit: 35e68fb5
https://invent.kde.org/sdk/kdesrc-build/-/commit/35e68fb5b925ef438cf441ead6dce3285f0fdbc8

M  +8-8doc/cmdline/supported-cmdline-params.docbook

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

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 71993bdc..219c9099 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -704,14 +704,6 @@ Display the program version.
 
 
 
-
---author
-
-Display contact information for the
-author.
-
-
-
 
 --help (or -h)
 
@@ -728,6 +720,14 @@ prove useful in bug reports or when asking for help in 
forums or mailing lists.
 
 
 
+
+--show-options-specifiers
+
+Print the specifier lines (in the format that GetOpts::Long accepts) for all 
command line options supported by the script.
+This may be used by developers, for example, for generating zsh autocompletion 
functions.
+
+
+
 
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Check that all option names read from config are recognised

2024-05-10 Thread Andrew Shark
Git commit cafef6c2228c7f489ce18cc80da5008a796f0b97 by Andrew Shark.
Committed on 10/01/2024 at 09:26.
Pushed by ashark into branch 'docbook_historied_per_file'.

Check that all option names read from config are recognised

For every option name read from the config, we will check if it is in 
`@all_possible_options` array. And if not, raise an exception.

To differentiate between normal config options and non-standard config options 
(options with custom name defined by user), we will prepend non-standard 
options with underscore. So users can still use this convenience feature.

Other changes of this commit:
- Allow substituting references to global options when they have underscore in 
their name.
- Add ability to _use_ custom variable immediately after defining in global 
section
- Fix end word typo in `t/data/kde-projects/kdesrc-buildrc-with-deps`.
- Temporary show a help message for the recently renamed option "kdedir".

Original commit: f99141ca
https://invent.kde.org/sdk/kdesrc-build/-/commit/f99141cadf12bbb7221ddc88ea6ce3e208b492df

M  +19   -1doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook

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

diff --git a/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook 
b/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook
index d5c7e1e7..adebe815 100644
--- a/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook
+++ b/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook
@@ -92,7 +92,7 @@ linkend="conf-use-modules">use-modules for more 
information.
 option-value.
 
 One modification that  performs is that a sequence
-${name-of-option} is replaced
+"${name-of-option}" is 
replaced
 with the value of that option from the global configuration. This allows you
 to reference the value of existing options, including options already set by
 .
@@ -101,6 +101,24 @@ to reference the value of existing options, including 
options already set by
 To see an example of this in use, see
 .
 
+You can also introduce your own non-standard global variables for 
referencing them further in the config.
+To do this, your option name should be prepended with underscore symbol. 
Example:
+
+Introducing your own global option for referencing later in 
config
+
+global
+  _ver 6  # ← your custom variable (starting with underscore)
+  _kde ~/kde${_ver}  # ← custom variable can contain another defined variable
+  source-dir ${_kde}/src  # ← note that nested variable (_kde → _ver) is also 
resolved
+end global
+
+options kdepim
+  log-dir /custom/path/logs${_ver} # ← you can use custom variable just like a 
standard
+end options
+
+
+
+
 
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Add specification for configuration options

2024-05-10 Thread Andrew Shark
Git commit 3fca6a373cd094293c9f43dc69d010e9bfed7f8d by Andrew Shark.
Committed on 29/11/2023 at 13:06.
Pushed by ashark into branch 'docbook_historied_per_file'.

Add specification for configuration options

Original commit: d9a2fb13
https://invent.kde.org/sdk/kdesrc-build/-/commit/d9a2fb130cd9a096df5bc6ea182e36a66d814b9d

M  +419  -258  doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/3fca6a373cd094293c9f43dc69d010e9bfed7f8d

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index df4ff911..5545dc53 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -20,53 +20,67 @@ option.
 
 
 Global scope only options
-
+
 
 
 
-Option-name
-Module - Global Behavior
-Notes
+Option name
+Description
 
 
 
 
 
 async
-Cannot be overridden
-This option enables the asynchronous mode of operation, where the 
source
+
+
+TypeBoolean
+Default valueTrue
+Available since1.6
+
+This option enables the asynchronous mode of operation, where the source
 code update and the build process will be performed in parallel, instead of 
waiting for
-all of the source code updates before starting the build process.  This option 
defaults
-to enabling asynchronous mode.  To disable, set this option to 
false
-This option is available since the 1.6 release.
+all of the source code updates before starting the build 
process.
 
 
 
 colorful-output
-Cannot be overridden
-Set this option to false to disable the colorful 
output of .
-This option defaults to true. Note that 
 will not output the
+
+TypeBoolean
+Default valueTrue
+Set this option to false to disable 
the colorful output of .
+Note that  will not output the
 color codes to anything but a terminal (such as xterm, , or the normal
- console).
+ console).
 
 
 
 
 disable-agent-check
-Cannot be overridden
-Normally if you are using  to download the  sources
-(such as if you are using the git+ssh protocol),  will try and
+
+
+TypeBoolean
+Default valueFalse
+
+If you are using  to download the  sources
+(such as if you are using the git+ssh protocol), this option controls if 
 will try and
 make sure that if you are using ssh-agent, it is actually managing some 
 identities. This is to try and prevent  from asking for your pass phrase
-for every module. You can disable this check by setting
-disable-agent-check to true.
+for every module.
 
 
 
 
 git-desired-protocol
-Cannot be overridden
-This option only applies to modules from a 
+
+TypeString
+Default valuegit
+History informationThis option was added in 
 1.16. Prior to 20.06 this option
+was used to configure the fetch URL instead of the push URL. As of 20.06
+https is always used when updating KDE projects.
+
+This option only applies to modules from a  project repository.
 
 What this option actually does is configure which network protocol to
@@ -87,16 +101,17 @@ needed for network traffic.
 In any other situation you should not set this option as the default
 protocol is most efficient.
 
-This option was added in  1.16. Prior to 20.06 this option
-was used to configure the fetch URL instead of the push URL. As of 20.06
-https is always used when updating KDE projects.
 
 
 
 
 git-repository-base
-Cannot be overridden
-This option, added in version 1.12.1, is used to create a short
+
+
+TypeString
+Available since1.12.1
+
+This option is used to create a short
 name to reference a specific Git repository base URL in later module set declarations, which is useful for
 quickly declaring many Git modules to build.
@@ -105,26 +120,21 @@ quickly declaring many Git modules to build.
 to the base URL, and the actual base URL itself. For example:
 
 
-
 
 global
-# other options
-
-# This is the common path to all anonymous Git server modules.
-git-repository-base kde-git 
kde:
+# other options
+# This is the common path to all anonymous Git server modules.
+git-repository-base kde-git 
kde:
 end global
 
 # Module declarations
 
 module-set
-# Now you can use the alias you defined earlier, but only
-# in a module-set.
-repository kde-git
-
-use-modules 
module1.git module2.git
+# Now you can use the alias you defined earlier, but 
only in a module-set.
+repository kde-git
+use-modules 
module1.git module2.git
 end module-set
 
-
 
 
 The module-set's use-modules option created two 
modules
@@ -132,11 +142,11 @@ internally, with  behaving as if it had 
read:
 
 
 module module1
-repository kde:module1.git
+repository kde:module1.git
 end module
 
 module module2
-repository kde:module2.git
+repository kde:module2.git
 end module
 
 
@@ -156,8 +166,12 @@ different module sets.
 
 
 ignore-modules
-Can't be overridden
-Modules named by this option, which would be chosen by 

+
+
+TypeString
+Available since1.16
+
+Modules named by this option, which would be chosen by 
 due to a use-modules option, are
 instead skipped entirely. Use

[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Support phase selection individually for modules and module-sets

2024-05-10 Thread Andrew Shark
Git commit 68dbc8f847165e08fcd7559df8eefd7971d8a68b by Andrew Shark.
Committed on 28/01/2024 at 21:24.
Pushed by ashark into branch 'docbook_historied_per_file'.

Support phase selection individually for modules and module-sets

Previously we could only select phases globally from command line. They were 
applied to all modules.

Sometimes user want to control phase selection for individual module.

The clone is happening from the remote/origin by default. This becomes a 
problem when user is working with a local branch that is not presented in 
remote. For example, user may not have a developer account, or just does not 
want to upload his work even in work/user branch yet.

He just wants kdesrc-build to not touch the sources of that module (while the 
other modules still be updated), and does not want to exclude module from build 
phase.

Let's say user wants to work with `kio`, and testing it with `ark`.
Previously, user could achieve this task by running `kdesrc-build` several 
times. Different quirks were needed. Example:
- `kdesrc-build ark --include-dependencies` - build ark with dependencies 
(including kio) as normal
- `...` - make changes to the kio project
- `kdesrc-build kio --no-src --no-include-dependencies`
- `kdesrc-build ark --include-dependencies --ignore-modules kio`

After this commit user can specify the `no-src` option for the `kio` module, 
and then just run `kdesrc-build ark --include-dependencies`. The `kio` will not 
be updated in this process, but will not be excluded from build phase.

BUG: 354796

Original commit: d8104fa8
https://invent.kde.org/sdk/kdesrc-build/-/commit/d8104fa8e9defa5b25f7eab538a7b0f2fc652e1d

M  +88   -14   doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/68dbc8f847165e08fcd7559df8eefd7971d8a68b

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index ed52e6bc..63adbf01 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -1038,20 +1038,6 @@ end options
 
 
 
-
-no-src
-
-
-TypeBoolean
-Default valueFalse
-
-If this option is set to true then  will not update the
-source code for the module automatically. It will still try to build the
-module if it normally would have tried anyways.
-Related command-line option: 
-
-
-
 
 override-build-system
 
@@ -1314,6 +1300,94 @@ installations. However this only works on build systems 
that support
 
 
 
+
+These options do not require any value (except "filter-out-phases"). 
They are applied if they are presented in a section.
+Phase selection options
+
+
+
+
+Option name
+Scope
+Description
+
+
+
+
+
+no-src
+globalmodulemodule-setoptions
+
+Remove update phase. The other phases that were 
presented will still be processed.
+Related command-line option: 
+
+
+
+
+no-install
+globalmodulemodule-setoptions
+
+Remove install phase. The other phases that were 
presented will still be processed.
+Related command-line option: 
+
+
+
+
+no-tests
+globalmodulemodule-setoptions
+
+Remove test phase. The other phases that were 
presented will still be processed.
+Related command-line option: --no-tests
+
+
+
+
+no-build
+globalmodulemodule-setoptions
+
+Remove build phase. The other phases that were 
presented will still be processed.
+Related command-line option: 
+
+
+
+
+build-only
+globalmodulemodule-setoptions
+
+If had build phase, remove any other phases. 
Otherwise, remove all phases.
+Related command-line option: 
+
+
+
+
+install-only
+globalmodulemodule-setoptions
+
+If had install phase, remove any other phases. 
Otherwise, remove all phases.
+Related command-line option: 
+
+
+
+
+uninstall
+globalmodulemodule-setoptions
+
+If had uninstall phase, remove any other phases. 
Otherwise, remove all phases.
+Related command-line option: --uninstall
+
+
+
+
+filter-out-phases
+globalmodulemodule-setoptions
+
+Remove those phases that are listed (space separated) in this option. 
The other phases that were presented will still be processed.
+
+
+
+
+
+
 
 
 Module-set and global scope options



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: doc: Fix mistake in variable name

2024-05-10 Thread Andrew Shark
Git commit e07bf87b7abb766f394a1e68ea29a4724af4f884 by Andrew Shark.
Committed on 19/01/2024 at 01:34.
Pushed by ashark into branch 'docbook_historied_per_file'.

doc: Fix mistake in variable name

Original commit: 4d990277
https://invent.kde.org/sdk/kdesrc-build/-/commit/4d990277cfe27c0fdcab5e422a37654b01aa2740

M  +1-1doc/kdesrc-buildrc/conf-options-table.docbook

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

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index be58e68b..e19ac4d0 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -317,7 +317,7 @@ You cannot override this setting in a module option. The 
default value is
 the $PATH that is set when the script starts. This environment
 variable should include the colon-separated paths of your development
 toolchain. The paths ${install-dir}/bin 
and
-${install-dir}/bin are automatically 
added. You
+${qt-install-dir}/bin are automatically 
added. You
 may use the tilde (~) for any paths you add using this option.
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc: Rename option "kdedir" to "install-dir"

2024-05-10 Thread Andrew Shark
Git commit 266f2e3bf47a1bc20da87d3d8e9cc0a871f5e2cb by Andrew Shark.
Committed on 03/01/2024 at 18:43.
Pushed by ashark into branch 'docbook_historied_per_file'.

Rename option "kdedir" to "install-dir"

The kdedir is ambiguous, it is not clear if it is source, build or install dir.

The kdedir naming dates back to the 2003 era when you had to define KDEDIR to 
define where KDE 3 was installed, just as QTDIR was used to define the location 
of the Qt 3 install.

mpyne later added prefix for non-KDE modules and should have switched things 
over afterwards but never got around to it.

By KDE SC 5 the requirement to use KDEDIR (or as it was by then, KDEDIRS) was 
dropped in favor of searching PATH.

See 
https://invent.kde.org/sdk/kdesrc-build/-/commit/2f7b9477b7d44a2f88c148846c8f80f6921fd4ef#note_839381

Original commit: e5c028cd
https://invent.kde.org/sdk/kdesrc-build/-/commit/e5c028cd18fa9f5e508e7b88d64033880eca7fa6

M  +10   -14   doc/appendix-profile/old-profile-setup.docbook
M  +1-1doc/cmdline/supported-cmdline-params.docbook
M  +1-1doc/features/features-overview.docbook
M  +1-1doc/getting-started/configure-data.docbook
M  +1-1doc/index.docbook
M  +6-6doc/kdesrc-buildrc/conf-options-table.docbook
M  +1-1doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook
M  +0-5doc/using-kdesrc-build/basic-features.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/266f2e3bf47a1bc20da87d3d8e9cc0a871f5e2cb

diff --git a/doc/appendix-profile/old-profile-setup.docbook 
b/doc/appendix-profile/old-profile-setup.docbook
index 1aa44da4..987925fe 100644
--- a/doc/appendix-profile/old-profile-setup.docbook
+++ b/doc/appendix-profile/old-profile-setup.docbook
@@ -26,37 +26,33 @@ If you are building the qt module (you are by default), add 
instead:
 
 
 QTDIR=(path to qtdir)   # Such as ~/kdesrc/build/qt by default.
-KDEDIR=(path to kdedir) # Such as ~/kde/usr by default.
-KDEDIRS=$KDEDIR
-PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
+PATH=${install-dir}/bin:$QTDIR/bin:$PATH
 MANPATH=$QTDIR/doc/man:$MANPATH
 
 # Act appropriately if LD_LIBRARY_PATH is not already set.
 if [ -z $LD_LIBRARY_PATH ]; then
-  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib
+  LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib
 else
-  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
+  LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib:$LD_LIBRARY_PATH
 fi
 
-export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH
+export QTDIR PATH MANPATH LD_LIBRARY_PATH
 
 
 or, if you are not building qt (and are using your system  instead), add
 this instead:
 
 
-KDEDIR=(path to kdedir)  # Such as ~/kde/usr by default.
-KDEDIRS=$KDEDIR
-PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
+PATH=${install-dir}/bin:$QTDIR/bin:$PATH
 
 # Act appropriately if LD_LIBRARY_PATH is not already set.
 if [ -z $LD_LIBRARY_PATH ]; then
-  LD_LIBRARY_PATH=$KDEDIR/lib
+  LD_LIBRARY_PATH=${install-dir}/lib
 else
-  LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
+  LD_LIBRARY_PATH=${install-dir}/lib:$LD_LIBRARY_PATH
 fi
 
-export KDEDIRS PATH LD_LIBRARY_PATH
+export PATH LD_LIBRARY_PATH
 
 
 
@@ -80,7 +76,7 @@ variables in your .bash_profile:
 
 
 XDG_CONFIG_DIRS="/etc/xdg"
-XDG_DATA_DIRS="${KDEDIR}/share:/usr/share"
+XDG_DATA_DIRS="${install-dir}/share:/usr/share"
 export XDG_CONFIG_DIRS XDG_DATA_DIRS
 
 
@@ -102,7 +98,7 @@ Open the .xinitrc text file from the 
home directory, or
 create it if necessary. Add the line:
 
 
-exec ${KDEDIR}/bin/startkde
+exec ${install-dir}/bin/startkde
 
 
 
diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index c44823ad..f5c288dd 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -608,7 +608,7 @@ environment as normal, and then execute the given 
program.
 This will not work to start a shell with the  environment
 in most cases however, since interactive shells typically reset at least part
 of the environment variables (such as PATH and
-KDEDIRS) in the startup sequence.
+${install-dir}) in the startup sequence.
 
 
 If you want to see the environment used by , you
diff --git a/doc/features/features-overview.docbook 
b/doc/features/features-overview.docbook
index 937f2941..3f6c9de1 100644
--- a/doc/features/features-overview.docbook
+++ b/doc/features/features-overview.docbook
@@ -163,7 +163,7 @@ Forced full rebuilds, by running
 
 
 You can specify various environment values to be used during the build,
-including KDEDIR, QTDIR, 
DO_NOT_COMPILE,
+including QTDIR, DO_NOT_COMPILE,
 and CXXFLAGS.
 
 
diff --git a/doc/getting-started/configure-data.docbook 
b/doc/getting-started/configure-data.docbook
index 59021d25..a4019619 100644
--- a/doc/getting-started/configure-data.docbook
+++ b/doc/getting-started/configure-data.docbook
@@ -28,7 +28,7 @@ The default settings should be appropriate to perform a
 
 
 
-kdedir, which changes the
+install-dir, which 
chan

[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Add support for --no-build-when-unchanged

2024-05-10 Thread Andrew Shark
Git commit d8fb6b82a84f32232294ef35f16cf2f74f269474 by Andrew Shark.
Committed on 16/01/2024 at 11:49.
Pushed by ashark into branch 'docbook_historied_per_file'.

Add support for --no-build-when-unchanged

This option was mistakenly not marked as negatable.
Adding the negatable form allows to override the `true` value set to this 
option from config.

Fixes: #351

Original commit: fe8dbd69
https://invent.kde.org/sdk/kdesrc-build/-/commit/fe8dbd69e35a9367181fe5d27c10d25786f192a4

M  +2-4doc/kdesrc-buildrc/conf-options-table.docbook

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

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index 86e35dbb..da8b7da1 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -417,13 +417,11 @@ 
class="directory">/home/user-name/builddir.
 Control whether  always
 tries to build a module that has not had any source code updates.
 
-By setting build-when-unchanged to
-true,  always attempts the build phase
+If set to true,  always attempts 
the build phase
 for a module, even if the module did not have any source code updates.
 With this value it will more likely lead to a correct build.
 
-By setting build-when-unchanged to
-false,  will only attempt to run the
+If set to false,  will only attempt 
to run the
 build phase for a module if the module has a source code update, or in other
 situations where it is likely that a rebuild is actually required. This can 
save
 time, especially if you run  daily, or more frequently.



[sdk/kdesrc-build/docbook_historied_per_file] doc: Split index.docbook to separate docbook files

2024-05-10 Thread Andrew Shark
Git commit 4e02da6ffdcd40d258a3d39a3b8c10937f62cb4a by Andrew Shark.
Committed on 05/01/2024 at 19:02.
Pushed by ashark into branch 'docbook_historied_per_file'.

Split index.docbook to separate docbook files

Original commit: ff360536
https://invent.kde.org/sdk/kdesrc-build/-/commit/ff360536e7dad4a5d58a8f51386aa4035d58bed2

M  +4-0doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/4e02da6ffdcd40d258a3d39a3b8c10937f62cb4a

diff --git a/doc/index.docbook b/doc/index.docbook
index 64dc254d..a7dcc0d2 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -63,6 +63,10 @@
   --resume-after'>
   --reconfigure'>
   --refresh-build'>
+
+  
   
   
   



[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: doc: Remove final paragraph about the selectors

2024-05-10 Thread Andrew Shark
Git commit 5c755544cb012cb250e543f1214d21958eb8961d by Andrew Shark.
Committed on 08/01/2024 at 21:42.
Pushed by ashark into branch 'docbook_historied_per_file'.

doc: Remove final paragraph about the selectors

The previous commit wrongly moved this paragraph to the specific section, but 
it was intentional to keep it outside the specific sections.

However, this paragraph originates from the very initial lifetime of the 
index.docbook, and is no more accurate. So remove it.

Original commit: cb3a389d
https://invent.kde.org/sdk/kdesrc-build/-/commit/cb3a389d27de1f1ca8fe1e529435fe73ad35e3d4

M  +0-5doc/cmdline/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/5c755544cb012cb250e543f1214d21958eb8961d

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index f27563dd..ab7923bc 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -731,10 +731,5 @@ prove useful in bug reports or when asking for help in 
forums or mailing lists.
 
 
 
-
-Any other command-line options are assumed to be modules to update and build.
-Please, do not mix building with installing.
-
-
 
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Move the module-set scope options to their table

2024-05-10 Thread Andrew Shark
Git commit 3ef19771ab890c89fbc6cdb5bf32e2f259f1c9a1 by Andrew Shark.
Committed on 12/12/2023 at 09:53.
Pushed by ashark into branch 'docbook_historied_per_file'.

Move the module-set scope options to their table

Original commit: 4ef24d2f
https://invent.kde.org/sdk/kdesrc-build/-/commit/4ef24d2f1150cb209f9d9c97cfef415f7dd0f69d

M  +93   -90   doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/3ef19771ab890c89fbc6cdb5bf32e2f259f1c9a1

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index 2f26df6f..04faa8a4 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -104,95 +104,6 @@ protocol is most efficient.
 
 
 
-
-git-repository-base
-
-
-TypeString
-Available since1.12.1
-
-This option is used to create a short
-name to reference a specific Git repository base URL in later module set declarations, which is useful for
-quickly declaring many Git modules to build.
-
-You must specify two things (separated by a space): The name to assign
-to the base URL, and the actual base URL itself. For example:
-
-
-
-global
-# other options
-# This is the common path to all anonymous Git server modules.
-git-repository-base kde-git 
kde:
-end global
-
-# Module declarations
-
-module-set
-# Now you can use the alias you defined earlier, but 
only in a module-set.
-repository kde-git
-use-modules 
module1.git module2.git
-end module-set
-
-
-
-The module-set's use-modules option created two 
modules
-internally, with  behaving as if it had read:
-
-
-module module1
-repository kde:module1.git
-end module
-
-module module2
-repository kde:module2.git
-end module
-
-
-The kde:  repository prefix used above is a
-shortcut which will be setup by  automatically. See the TechBase
-https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL
-Renaming article for more information. Note that unlike most other
-options, this option can be specified multiple times in order to create as
-many aliases as necessary.
-
-It is not required to use this option to take advantage of 
module-set,
-this option exists to make it easy to use the same repository across many
-different module sets.
-
-
-
-
-ignore-modules
-
-
-TypeString
-Available since1.16
-
-Modules named by this option, which would be chosen by 
-due to a use-modules option, are
-instead skipped entirely. Use this option when you want to build an entire
-kde-projects project grouping
-except for some specific modules.
-
-The option value does not necessarily have to name the module directly.
-Any module that has full consecutive parts of its  projects module path match one
-of the option values will be ignored, so you can ignore multiple modules this
-way.
-
-For example, an option value of libs would
-result in both kde/kdegraphics/libs and
-playground/libs being excluded (though not
-kde/kdelibs since the full part kdelibs is what
-is compared).
-
-See also .
-
-
-
 
 install-environment-driver
 
@@ -1302,7 +1213,7 @@ installations. However this only works on build systems 
that support
 
 
 
-Module-set scope only options
+Module-set and global scope options
 
 
 
@@ -1313,6 +1224,97 @@ installations. However this only works on build systems 
that support
 
 
 
+
+git-repository-base
+
+
+TypeString
+Available since1.12.1
+
+This option is used to create a short
+name to reference a specific Git repository base URL in later module set declarations, which is useful for
+quickly declaring many Git modules to build.
+
+You must specify two things (separated by a space): The name to assign
+to the base URL, and the actual base URL itself. For example:
+
+
+
+global
+# other options
+# This is the common path to all anonymous Git server modules.
+git-repository-base kde-git 
kde:
+end global
+
+# Module declarations
+
+module-set
+# Now you can use the alias you defined earlier, but 
only in a module-set.
+repository kde-git
+use-modules 
module1.git module2.git
+end module-set
+
+
+
+The module-set's use-modules option created two 
modules
+internally, with  behaving as if it had read:
+
+
+module module1
+repository kde:module1.git
+end module
+
+module module2
+repository kde:module2.git
+end module
+
+
+The kde:  repository prefix used above is a
+shortcut which will be setup by  automatically. See the TechBase
+https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL
+Renaming article for more information. Note that unlike most other
+options, this option can be specified multiple times in order to create as
+many aliases as necessary.
+
+It is not required to use this option to take advantage of 
module-set,
+this option exists to make it easy to use the same repository across many
+different module sets.
+
+
+
+
+ignore-modules
+
+
+TypeString
+Available since1.16
+
+Currently can only be used in module-set, see

[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Add --dependency-tree-fullpath option

2024-05-10 Thread Andrew Shark
Git commit 74be34cc1b3b4c4a259bc25fb4e69407bc97309c by Andrew Shark.
Committed on 28/12/2023 at 09:43.
Pushed by ashark into branch 'docbook_historied_per_file'.

Add --dependency-tree-fullpath option

This option will do similar thing as --dependency-tree, but will print the full 
path on the line of each tree entry.

This may be convenient when you want to grep something from the printed tree, 
but want to still be able to see the paths.

Original commit: 42483187
https://invent.kde.org/sdk/kdesrc-build/-/commit/42483187d75c2787f6c627d6ed1f84e0529a9b6f

M  +11   -0doc/cmdline/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/74be34cc1b3b4c4a259bc25fb4e69407bc97309c

diff --git a/doc/cmdline/supported-cmdline-params.docbook 
b/doc/cmdline/supported-cmdline-params.docbook
index 5818d7a6..c44823ad 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -587,6 +587,17 @@ If this file doesn't exist, 
~/.config/kdesrc-buildrc
 
 
 
+
+--dependency-tree-fullpath
+
+
+Prints out dependency information on the modules that would be built using 
a tree
+format (recursive). In fullpath format. Note: the generated
+output may become quite large for applications with many dependencies.
+
+
+
+
 
 --run
 



[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Remove unused option kde-languages

2024-05-10 Thread Andrew Shark
Git commit 88753fbe303969744cc4f158fe6f83b6b896047c by Andrew Shark.
Committed on 16/11/2023 at 14:03.
Pushed by ashark into branch 'docbook_historied_per_file'.

Remove unused option kde-languages

Original commit: aec5f8b9
https://invent.kde.org/sdk/kdesrc-build/-/commit/aec5f8b9c19bed58a633f9fb2c72392c0a70cf68

M  +0-24   doc/kdesrc-buildrc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/88753fbe303969744cc4f158fe6f83b6b896047c

diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook 
b/doc/kdesrc-buildrc/conf-options-table.docbook
index 42599f39..7831bf87 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -743,30 +743,6 @@ change this to a directory needing root access, you may 
want to read about the
 well.
 
 
-
-kde-languages
-Cannot be overridden
-This option allows you to choose to download and install
-localization packages along with . You might do this if you do not live in
-the United States and would like to use  translated into your native
-language.
-
-To use this option, set it to a space-separated list of languages to
-install. Each language has a language code associated with it, which you
-can look up at this page: http://l10n.kde.org/teams-list.php;>http://l10n.kde.org/teams-list.php.
-
-
-It is alright to choose only one language. By default, none are
-downloaded, which means  will display in American English.
-
-For instance, to choose to install French, you would set the option to
-something like: kde-languages
-fr.  You would still need to use
- in order to choose the French language, however.
-
-
-
 
 libname
 Module setting overrides global



[sdk/kdesrc-build/docbook_historied_per_file] doc: Move xsession.sh and kde-env-master.sh templates to data

2024-05-10 Thread Andrew Shark
Git commit 4a025b73f8a83f57b5c484e10d03116b43829265 by Andrew Shark.
Committed on 12/12/2023 at 10:04.
Pushed by ashark into branch 'docbook_historied_per_file'.

Move xsession.sh and kde-env-master.sh templates to data

Original commit: beffd6a8
https://invent.kde.org/sdk/kdesrc-build/-/commit/beffd6a8d7250ffab6307bf1492c6ef751bbd3bb

M  +1-1doc/appendix-profile/old-profile-setup.docbook
M  +1-1doc/getting-started/environment.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/4a025b73f8a83f57b5c484e10d03116b43829265

diff --git a/doc/appendix-profile/old-profile-setup.docbook 
b/doc/appendix-profile/old-profile-setup.docbook
index 59de9fd5..1aa44da4 100644
--- a/doc/appendix-profile/old-profile-setup.docbook
+++ b/doc/appendix-profile/old-profile-setup.docbook
@@ -7,7 +7,7 @@ will normally try to do this automatically (see ). This appendix section can be useful for those who
 cannot use 's support for login profile setup. However the
 instructions may not always be up-to-date, it can also be useful to consult the
-kde-env-master.sh file included with the 
+kde-env-master.sh.in file included with the 
 source.
 
 
diff --git a/doc/getting-started/environment.docbook 
b/doc/getting-started/environment.docbook
index bf606dd6..d5929b59 100644
--- a/doc/getting-started/environment.docbook
+++ b/doc/getting-started/environment.docbook
@@ -119,7 +119,7 @@ instructions have been moved to an appendix ().
 
 If you intend to setup your own login support you can consult that
-appendix or view the sample-kde-env-master.sh file
+appendix or view the kde-env-master.sh.in file
 included with the  source.
 
 



[utilities/ark] /: Make the Compress menu items text consistent

2024-03-25 Thread Andrew Shark
Git commit fe1e8a1d3e2f485bcb37df19fff1871872e97fd1 by Andrew Shark.
Committed on 25/03/2024 at 14:25.
Pushed by meven into branch 'master'.

Make the Compress menu items text consistent

The items of Compress submenu were:
- Here as "Archive.tar.gz"
- Here as "Archive.zip"
- Compress to...

Make them all be consistent, and be:
- Compress to "Archive.tar.gz"
- Compress to "Archive.zip"
- Compress to...

M  +1-1app/compressfileitemaction.cpp
M  +1-1doc/index.docbook

https://invent.kde.org/utilities/ark/-/commit/fe1e8a1d3e2f485bcb37df19fff1871872e97fd1

diff --git a/app/compressfileitemaction.cpp b/app/compressfileitemaction.cpp
index 06bb938b3..850db43ab 100644
--- a/app/compressfileitemaction.cpp
+++ b/app/compressfileitemaction.cpp
@@ -84,7 +84,7 @@ QAction *CompressFileItemAction::createAction(const QIcon 
, QWidget *parent
 fileName = fileName.left(10) + QStringLiteral("…") + 
fileName.right(10);
 }
 
-name = i18nc("@action:inmenu Part of Compress submenu in Dolphin 
context menu, %1 filename", "Here as \"%1\"", fileName);
+name = i18nc("@action:inmenu Part of Compress submenu in Dolphin 
context menu, %1 filename", "Compress to \"%1\"", fileName);
 }
 
 QAction *action = new QAction(icon, name, parent);
diff --git a/doc/index.docbook b/doc/index.docbook
index 709a284ba..18fec9a21 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -412,7 +412,7 @@ subfolder in the folder with the archive, extracts the 
folders and files into it
 
 
 
-Here as "Archive.tar.gz" and 
Here as "Archive.zip" creates these archive types in 
the current folder.
+Compress to "Archive.tar.gz" and 
Compress to "Archive.zip" creates these archive 
types in the current folder.
 
 
 Compress to... opens a dialog where you can 
select folder, name and archive type.


[sdk/kdesrc-build/move_authors] /: SPDX: Add headers in docbook

2024-03-11 Thread Andrew Shark
Git commit 01535ba40b3d77feae8c0b58a840836d042b4faf by Andrew Shark.
Committed on 11/03/2024 at 08:19.
Pushed by ashark into branch 'move_authors'.

SPDX: Add headers in docbook

M  +8-0LICENSES/kdesrc-build authors.txt
M  +7-0doc/advanced-features.docbook
M  +7-0doc/appendix-modules.docbook
M  +7-0doc/appendix-profile.docbook
M  +7-0doc/basic-features.docbook
M  +7-0doc/building-and-troubleshooting.docbook
M  +7-0doc/building-specific-modules.docbook
M  +7-0doc/cmdline.docbook
M  +7-0doc/conf-options-table.docbook
M  +7-0doc/configure-data.docbook
M  +7-0doc/credits-and-license.docbook
M  +7-0doc/developer-features.docbook
M  +7-0doc/environment.docbook
M  +7-0doc/features.docbook
M  +7-0doc/getting-started.docbook
M  +8-18   doc/index.docbook
M  +7-0doc/intro-toc.docbook
M  +7-0doc/introduction.docbook
M  +7-0doc/kde-cmake.docbook
M  +7-0doc/kde-modules-and-selection.docbook
M  +7-0doc/kdesrc-build-logging.docbook
M  +7-0doc/kdesrc-buildrc.docbook
M  +5-10   doc/man-kdesrc-build.1.docbook
M  +7-0doc/other-features.docbook
M  +7-0doc/quick-start-conclusion.docbook
M  +7-0doc/supported-cmdline-params.docbook
M  +7-0doc/supported-envvars.docbook
M  +7-0doc/using-kdesrc-build.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/01535ba40b3d77feae8c0b58a840836d042b4faf

diff --git a/LICENSES/kdesrc-build authors.txt b/LICENSES/kdesrc-build 
authors.txt
index 1d9fb5de..fccfef04 100644
--- a/LICENSES/kdesrc-build authors.txt 
+++ b/LICENSES/kdesrc-build authors.txt 
@@ -11,3 +11,11 @@ Contributors include:
   Pino Toscano  
 
 ... and others. Check the git source repository for specifics.
+
+Documentation contributors include:
+2005 Carlos Leonhard Woelz 
+2009 Burkhard Lück 
+2007, 2011 Federico Zenith 
+2009-2011 Yuri Chornoivan 
+2023, 2024 Andrew Shark 
+... and others. Check the git source repository for specifics.
diff --git a/doc/advanced-features.docbook b/doc/advanced-features.docbook
index edb19da7..17627c8f 100644
--- a/doc/advanced-features.docbook
+++ b/doc/advanced-features.docbook
@@ -1,3 +1,10 @@
+
+
 
 Advanced features
 
diff --git a/doc/appendix-modules.docbook b/doc/appendix-modules.docbook
index 109f2daf..1dd8032b 100644
--- a/doc/appendix-modules.docbook
+++ b/doc/appendix-modules.docbook
@@ -1,3 +1,10 @@
+
+
 
  modules and source code organization
 
diff --git a/doc/appendix-profile.docbook b/doc/appendix-profile.docbook
index 517465fc..a014d90b 100644
--- a/doc/appendix-profile.docbook
+++ b/doc/appendix-profile.docbook
@@ -1,3 +1,10 @@
+
+
 
 Superseded profile setup procedures
 
diff --git a/doc/basic-features.docbook b/doc/basic-features.docbook
index f9ce58c1..4f501ace 100644
--- a/doc/basic-features.docbook
+++ b/doc/basic-features.docbook
@@ -1,3 +1,10 @@
+
+
 
 Basic  features
 
diff --git a/doc/building-and-troubleshooting.docbook 
b/doc/building-and-troubleshooting.docbook
index b9d478eb..7512811b 100644
--- a/doc/building-and-troubleshooting.docbook
+++ b/doc/building-and-troubleshooting.docbook
@@ -1,3 +1,10 @@
+
+
 
 Using the  script
 With the configuration data established, now you are ready to run the
diff --git a/doc/building-specific-modules.docbook 
b/doc/building-specific-modules.docbook
index d0e30a76..af268a67 100644
--- a/doc/building-specific-modules.docbook
+++ b/doc/building-specific-modules.docbook
@@ -1,3 +1,10 @@
+
+
 
 Building specific modules
 
diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook
index a3380279..2dc1362a 100644
--- a/doc/cmdline.docbook
+++ b/doc/cmdline.docbook
@@ -1,3 +1,10 @@
+
+
 
 Command Line Options and Environment Variables
 
diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index b35d520c..6c101e59 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -1,3 +1,10 @@
+
+
 
 Table of available configuration options
 
diff --git a/doc/configure-data.docbook b/doc/configure-data.docbook
index a4019619..a2a36b49 100644
--- a/doc/configure-data.docbook
+++ b/doc/configure-data.docbook
@@ -1,3 +1,10 @@
+
+
 
 Setting the Configuration Data
 
diff --git a/doc/credits-and-license.docbook b/doc/credits-and-license.docbook
index c1cde3c6..ae1da0a4 100644
--- a/doc/credits-and-license.docbook
+++ b/doc/credits-and-license.docbook
@@ -1,3 +1,10 @@
+
+
 
 Credits And License
 
diff --git a/doc/developer-features.docbook b/doc/developer-features.docbook
index 1a5dc69a..550f2403 100644
--- a/doc/developer-features.docbook
+++ b/doc/developer-features.docbook
@@ -1,3 +1,10 @@
+
+
 
 Features for  developers
 
diff --git a/doc/environment.docbook b/doc/environment.docbook
index d5929b59..af163528 100644
--- a/doc/environment.docbook
+++ b/doc/environment.docbook
@@ -1,3 +1,10 @@
+
+
 
 Setting the Environment to Run Your   Desktop
 
diff --git

[sdk/kde-builder] /: Use os.cpu_count() instead of running subprocess

2024-03-09 Thread Andrew Shark
Git commit 4f769b8417b23d27a037aede0baf5d99ad78025f by Andrew Shark, on behalf 
of Christoph Cullmann.
Committed on 09/03/2024 at 17:55.
Pushed by ashark into branch 'master'.

Use os.cpu_count() instead of running subprocess

This also unifies the code, so we do not need to distinct between 
linux/freebsd/macos specific command to get number of threads.

M  +1-3doc/conf-options-table.docbook
M  +2-4ksblib/BuildSystem/BuildSystem.py
M  +1-6ksblib/FirstRun.py
M  +5-2tests/unit/build-system/test_empty-num-cores.py

https://invent.kde.org/sdk/kde-builder/-/commit/4f769b8417b23d27a037aede0baf5d99ad78025f

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index b35d520c..a0008112 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -258,9 +258,7 @@ number, the "nicer" the program is.
 Available since20.07
 
 This option is defined by  (when using 
kdesrc-build --generate-config), set to be the number of
-available CPUs (as indicated by the external application
-nproc). If  cannot detect the
-number of CPUs, this value is set to 4.
+available CPUs. If  cannot detect the number of CPUs, this value 
is set to 4.
 
 See  for an example of this
 option's usage.
diff --git a/ksblib/BuildSystem/BuildSystem.py 
b/ksblib/BuildSystem/BuildSystem.py
index 3fe13b77..6523bf20 100644
--- a/ksblib/BuildSystem/BuildSystem.py
+++ b/ksblib/BuildSystem/BuildSystem.py
@@ -97,10 +97,8 @@ class BuildSystem:
 if self.supportsAutoParallelism() and cores == "auto":
 return {}
 
-try:
-out = [line.removesuffix("\n") for line in 
Util.filter_program_output(None, "nproc")]
-max_cores = max(1, int(out[0]))
-except BuildException:
+max_cores = os.cpu_count()
+if not max_cores:
 max_cores = 1
 
 if cores == "auto" and max_cores > 1:
diff --git a/ksblib/FirstRun.py b/ksblib/FirstRun.py
index 95ea6204..356aea77 100644
--- a/ksblib/FirstRun.py
+++ b/ksblib/FirstRun.py
@@ -194,12 +194,7 @@ class FirstRun:
 with open(os.path.dirname(os.path.realpath(__file__)) + 
"/../data/kdesrc-buildrc.in", "r") as data_file:
 sampleRc = data_file.read()
 
-numCores = None
-if self.oss.vendorID() in [*self.supportedDistros, "linux"]:
-numCores = int(subprocess.run(["nproc"], shell=False, 
capture_output=True, check=True).stdout.decode("utf-8").removesuffix("\n"))
-elif self.oss.vendorID() == "freebsd":
-numCores = int(subprocess.run(["sysctl", "-n", "hw.ncpu"], 
shell=False, capture_output=True, 
check=True).stdout.decode("utf-8").removesuffix("\n"))
-
+numCores = os.cpu_count()
 if not numCores:
 numCores = 4
 
diff --git a/tests/unit/build-system/test_empty-num-cores.py 
b/tests/unit/build-system/test_empty-num-cores.py
index b2ad9a03..a2c2f334 100644
--- a/tests/unit/build-system/test_empty-num-cores.py
+++ b/tests/unit/build-system/test_empty-num-cores.py
@@ -1,3 +1,4 @@
+import os
 import pytest
 import subprocess
 from ksblib.Module.Module import Module
@@ -29,8 +30,10 @@ def test_empty_numcores(mock_buildsystem):
 
 # The -j logic will take off one CPU if you ask for too many so try to 
ensure
 # test cases don't ask for too many.
-max_cores = int(subprocess.run(["nproc"], shell=True, capture_output=True, 
check=True).stdout.decode("utf-8").removesuffix("\n"))
-max_cores = int(max_cores // 2)
+max_cores = os.cpu_count()
+if max_cores is None:
+max_cores = 2
+
 if max_cores < 2:
 max_cores = 2
 


[sdk/kdesrc-build] doc: doc: Create table of debug levels

2024-02-24 Thread Andrew Shark
Git commit fd57dd6695550f522a2c2c16d09d1ca9bfee6ad1 by Andrew Shark.
Committed on 24/02/2024 at 16:26.
Pushed by ashark into branch 'master'.

doc: Create table of debug levels

M  +52   -19   doc/other-features.docbook

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

diff --git a/doc/other-features.docbook b/doc/other-features.docbook
index 96215a58..c42d97fe 100644
--- a/doc/other-features.docbook
+++ b/doc/other-features.docbook
@@ -6,25 +6,58 @@
  has several options to control the amount of output the
 script generates. In any case, errors will always be output.
 
-
-The --quiet option (short form is
--q) causes  to be mostly silent. Only important
-messages, warnings, or errors will be shown. When available, build progress
-information is still shown.
-
-The --really-quiet option (no short form)
-causes  to only display important warnings or errors while it is
-running.
-
-The --verbose option (short form is
--v) causes  to be very detailed in its
-output.
-
-The --debug option is for debugging purposes
-only, it causes  to act as if --verbose was
-turned on, causes commands to also output to the terminal, and will display
-debugging information for many functions.
-
+
+  Table of debug levels
+  
+  
+  
+
+  Debug level
+  Level name
+  Command line option
+
+  
+  
+  
+  
+0
+DEBUG
+--debug
+  
+
+  
+1
+WHISPER
+--verbose
+  
+  
+  
+2
+INFO
+Selected by default
+  
+  
+  
+3
+NOTE
+--quiet
+  
+  
+  
+4
+WARNING
+--really-quiet
+  
+  
+  
+5
+ERROR
+No way to select
+  
+  
+  
+  
+
 
 
 


[sdk/kdesrc-build] /: doc: List --run in commonly used options

2024-02-20 Thread Andrew Shark
Git commit 19044150a44a2f7a18d89a1e74dbcc0b5f696c6e by Andrew Shark.
Committed on 20/02/2024 at 21:29.
Pushed by ashark into branch 'master'.

doc: List --run in commonly used options

Reference full documentation from --help. No need to keep yet another place of 
options listing.

M  +54   -42   doc/cmdline.docbook
M  +6-69   modules/ksb/Cmdline.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/19044150a44a2f7a18d89a1e74dbcc0b5f696c6e

diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook
index a3380279..0ad480d0 100644
--- a/doc/cmdline.docbook
+++ b/doc/cmdline.docbook
@@ -17,48 +17,6 @@ kdesrc-build will build all modules defined in its 
configuration file, in the
 order listed in that file (although this can be modified by various
 configuration file options).
 
-
-Commonly used command line options
-
-The full list of command line options is given in . The most-commonly used options
-include:
-
-
-  
---pretend (or -p)
-This option causes  to indicate what actions
-it would take, without actually really implementing them. This can be
-useful to make sure that the modules you think you are building will
-actually get built.
-  
-
-  
---refresh-build
-This option forces  to build the given
-modules from an absolutely fresh start point. Any existing build directory
-for that module is removed and it is rebuilt. This option is useful if you
-have errors building a module, and sometimes is required when  or 
-libraries change.
-  
-
-  
---no-src
-This option skips the source update process. You might use
-it if you have very recently updated the source code (perhaps you did it
-manually or recently ran ) but still want to rebuild some
-modules.
-  
-
-  
---no-build
-This option is similar to --no-src above,
-but this time the build process is skipped.
-  
-
-
-
-
 
 Specifying modules to build
 
@@ -96,6 +54,60 @@ option before building a new module set to ensure it is only 
building the
 modules you want.
 
 
+
+
+Commonly used command line options
+
+
+  
+--pretend (or -p)
+This option causes  to indicate what 
actions
+  it would take, without actually really implementing them. This can be
+  useful to make sure that the modules you think you are building will
+  actually get built.
+  
+  
+  
+--no-src
+This option skips the source update process. You might 
use
+  it if you have very recently updated the source code (perhaps you 
did it
+  manually or recently ran ) but still want to rebuild 
some
+  modules.
+  
+  
+  
+--no-include-dependencies (or 
-D)
+Only process the selected modules, skipping their 
dependencies.
+  Useful when you have changed only selected modules, and you are sure 
you
+  do not need to rebuild the others.
+  
+  
+  
+--refresh-build (or -r)
+This option forces  to build the given
+  modules from an absolutely fresh start point. Any existing build 
directory
+  for that module is removed and it is rebuilt. This option is useful 
if you
+  have errors building a module, and sometimes is required when  
or 
+  libraries change.
+  
+  
+  
+--resume-from module
+Skips modules until just before the given module, then 
operates as normal.
+  Useful when the previous build failed on specific module, you fixed 
it, and then you
+  want to continue the with building the rest of initial set of 
modules.
+  
+  
+  
+--run module
+Launch the built application.
+  
+
+  
+  The full list of command line options is given in .
+  
+  
 
 
 
diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm
index cb1666e4..a935286a 100644
--- a/modules/ksb/Cmdline.pm
+++ b/modules/ksb/Cmdline.pm
@@ -323,77 +323,14 @@ sub _showVersionAndExit
 
 sub _showHelpAndExit
 {
-# According to XDG spec, if $XDG_CONFIG_HOME is not set, then we should
-# default to ~/.config
-my $xdgConfigHome = $ENV{XDG_CONFIG_HOME} // "$ENV{HOME}/.config";
-my $xdgConfigHomeShort = $xdgConfigHome =~ s/^$ENV{HOME}/~/r; # Replace 
$HOME with ~
-
-my $pwd = $ENV{PWD};
-my $pwdShort = $pwd =~ s/^$ENV{HOME}/~/r; # Replace $HOME with ~
-
-my $scriptVersion = scriptVersion();
-
 say <<~DONE;
-kdesrc-build $scriptVersion
-Copyright (c) 2003 - 2023 Michael Pyne  and others, 
and is
-distributed under the terms of the GNU GPL v2.
-
-This script automates the download, build, and install process for KDE 
software
-using the latest available source code.
-
-Configuration is controlled from "$pwdShort/kdesrc-buildrc" or
-"$xdgConfigHomeShort/kdesrc-buildrc".
-See kdesrc-buildrc-sample for an example.
-
-Us

[sdk/kdesrc-build] /: Use distro-dependencies defined in repo-metadata

2024-02-18 Thread Andrew Shark
Git commit 75bfc43675938761ee0f23efa36ebbfd70ea0322 by Andrew Shark.
Committed on 18/02/2024 at 11:02.
Pushed by ashark into branch 'master'.

Use distro-dependencies defined in repo-metadata

Distro dependencies (data/pkg) moved here: 
https://invent.kde.org/sysadmin/repo-metadata/-/tree/master/distro-dependencies

D  +0-104  data/pkg/alpine.ini
D  +0-126  data/pkg/arch.ini
D  +0-175  data/pkg/debian.ini
D  +0-166  data/pkg/fedora.ini
D  +0-39   data/pkg/freebsd.ini
D  +0-32   data/pkg/gentoo.ini
D  +0-36   data/pkg/mageia.ini
D  +0-158  data/pkg/opensuse.ini
M  +1-0doc/man-kdesrc-build.1.docbook
M  +1-0doc/supported-cmdline-params.docbook
M  +5-0kdesrc-build
M  +29   -38   modules/ksb/FirstRun.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/75bfc43675938761ee0f23efa36ebbfd70ea0322

diff --git a/data/pkg/alpine.ini b/data/pkg/alpine.ini
deleted file mode 100644
index 3eef1ea4..
--- a/data/pkg/alpine.ini
+++ /dev/null
@@ -1,104 +0,0 @@
-[pkg/alpine/unknown]
-alpine-sdk
-attr-dev
-autoconf
-automake
-bison
-boost-dev
-clang-extra-tools
-cmake
-corrosion
-curl-dev
-cyrus-sasl-dev
-doxygen
-eudev-dev
-exiv2-dev
-ffmpeg-dev
-flex
-giflib-dev
-gperf
-gpgme-dev
-grantlee-dev
-graphviz
-gst-plugins-base-dev
-gstreamer-dev
-kdsoap-dev
-lcms2-dev
-libaccounts-qt-dev
-libcanberra-dev
-libdbusmenu-qt-dev
-libdisplay-info-dev
-libdmtx-dev
-libepoxy-dev
-libgcrypt-dev
-libgit2-dev
-libical-dev
-libinput-dev
-libnl3-dev
-libqalculate-dev
-libqrencode-dev
-libsecret-dev
-libva-dev
-libxcvt-dev
-libxkbfile-dev
-libxmlb-dev
-libxrender-dev
-libxslt-dev
-libxtst-dev
-linux-pam-dev
-lm-sensors-dev
-lmdb-dev
-meson
-modemmanager-dev
-mpv-dev
-musl-fts-dev
-networkmanager-dev
-ninja
-olm-dev
-openjpeg-dev
-openldap-dev
-pcre-dev
-pipewire-dev
-polkit-elogind-dev
-pulseaudio-dev
-py3-sphinx
-py3-setuptools
-qca-dev
-qcoro-dev
-qt5-qtbase-dev
-qt5-qtdeclarative-dev
-qt5-qtmultimedia-dev
-qt5-qtnetworkauth-dev
-qt5-qtquickcontrols2-dev
-qt5-qtscript-dev
-qt5-qtsensors-dev
-qt5-qtsvg-dev
-qt5-qttools-dev
-qt5-qtwayland-dev
-qt5-qtx11extras-dev
-qt5-qtxmlpatterns-dev
-qt6-qt5compat-dev
-qt6-qtbase-dev
-qt6-qtmultimedia-dev
-qt6-qtpositioning-dev
-qt6-qtsensors-dev
-qt6-qtspeech-dev
-qt6-qtsvg-dev
-qt6-qttools-dev
-qt6-qtwayland-dev
-qt6-qtwebengine-dev
-qt6-qtwebview-dev
-qtkeychain-dev
-signond-dev
-stb
-texinfo
-utfcpp
-wayland-protocols
-xapian-core-dev
-xcb-util-cursor-dev
-xcb-util-image-dev
-xcb-util-keysyms-dev
-xcb-util-wm-dev
-xkeyboard-config-dev
-xmlto
-yaml-dev
diff --git a/data/pkg/arch.ini b/data/pkg/arch.ini
deleted file mode 100644
index 4a9077af..
--- a/data/pkg/arch.ini
+++ /dev/null
@@ -1,126 +0,0 @@
-[pkg/arch/unknown]
-# Basic build tools
-
-# .. gnu
-autoconf
-automake
-bison
-flex
-gcc
-gperf
-make
-
-# .. llvm
-clang
-cmake
-
-# .. build systems
-ninja
-meson
-
-# .. rust
-corrosion
-
-# .. others
-boost
-docbook-xsl
-doxygen
-intltool
-pkg-config
-git
-gi-docgen
-
-# Qt-related
-qt6
-poppler-qt6
-qca-qt6
-qtkeychain-qt6
-qcoro-qt6
-qt5-base
-qt5-script
-qt5-websockets
-qt5-svg
-qt5-tools
-qt5-x11extras
-qca-qt5
-libaccounts-qt
-libdbusmenu-qt5
-poppler-qt5
-qtkeychain-qt5
-phonon-qt5
-packagekit
-
-# Others/Unsorted
-wayland-protocols
-qrencode
-signond
-xapian-core
-qgpgme
-kdsoap
-xsd
-xerces-c
-vlc
-ruby-sass
-eigen
-mlt
-freecell-solver
-sane
-vala
-check
-libolm
-xmlto
-itstool
-libdisplay-info
-python-sphinx
-python-setuptools
-enchant
-jasper
-openexr
-libutempter
-docbook-xsl
-shared-mime-info
-giflib
-libxss
-upower
-udisks2
-xorg-server-devel
-libpwquality
-libfakekey
-eigen
-xapian-core
-libdmtx
-ruby-test-unit
-plymouth
-libical
-openal
-libxmlb
-exiv2
-lmdb
-libqalculate
-libraw
-mpv
-sccache
-python-cairo
-python-pip
-flatpak
-xf86-input-wacom
-black-hole-solver
-fluidsynth
-libgit2
-microsoft-gsl
-power-profiles-daemon
-
-#plasma-desktop
-xdotool
-
-# appstream
-gobject-introspection
-xf86-input-evdev
-python-chai
-
-#okular
-libspectre
-libzip
-discount
-djvulibre
-ebook-tools
diff --git a/data/pkg/debian.ini b/data/pkg/debian.ini
deleted file mode 100644
index fbce96cd..
--- a/data/pkg/debian.ini
+++ /dev/null
@@ -1,175 +0,0 @@
-[pkg/debian/unknown]
-# Basic build tools
-bison
-build-essential
-cmake
-flex
-gettext
-git
-gperf
-libssl-dev
-intltool
-meson
-ninja-build
-shared-mime-info
-clang-format
-apt-file
-# Qt-related
-qtwayland5-private-dev
-libdbusmenu-qt5-dev
-libqt5svg5-dev
-libqt5waylandclient5-dev
-libqt5x11extras5-dev
-qtbase5-private-dev
-qtdeclarative5-dev
-qtmultimedia5-dev
-qtquickcontrols2-5-dev
-qtscript5-dev
-qttools5-dev
-qtwayland5-dev-tools
-qtxmlpatterns5-dev-tools
-qt6-tools-dev
-qt6-declarative-dev
-qt6-wayland
-qt6-wayland-dev
-qt6-wayland-dev-tools
-qt6-base-private-dev
-qt6-speech-dev
-qt6-multimedia-dev
-libqt6svg6-dev
-libqt6core5compat6-dev
-libqt6opengl6-dev
-libqt6shadertools6-dev
-packagekit
-# Frameworks dependencies
-# .. polkit-qt-1
-libpolkit-gobject-1-dev
-libpolkit

[sdk/kdesrc-build] /: Merge kdesrc-build --run and kdesrc-run

2024-02-17 Thread Andrew Shark
Git commit 301b9b4caf1b84bf2e14bd616fec06683f5a2d18 by Andrew Shark.
Committed on 17/02/2024 at 17:50.
Pushed by ashark into branch 'master'.

Merge kdesrc-build --run and kdesrc-run

This fixes multiple issues with kdesrc-run and kdesrc-build --run

When using the --run parameter, the environment variables of global module were 
applied (from set-env options). But this is incorrect, since global cannot be 
treated as usual module. Its build system is defined as generic. In its 
prepareModuleBuildEnvironment these variables were setted:
- PKG_CONFIG_PATH
- LD_LIBRARY_PATH
- PATH
They have nothing to do with launched module's variables, except PATH, but even 
that was because of global install-dir matches the module's install-dir in most 
cases.

The kdesrc-run did sourced module's prefix.sh instead (located in its 
build-dir). That setted the following variables:
- PATH (the correct, from module)
- XDG_DATA_DIRS
- XDG_CONFIG_DIRS
- QT_PLUGIN_PATH
- QML2_IMPORT_PATH
- QT_QUICK_CONTROLS_STYLE_PATH

This commit fixes the broken behavior of --run, and the broken behavior of 
kdesrc-run.

Fixes: #145
Fixes: #114

Other fixes:
- Now the parameters after --run that starts with minuses are passed to the 
start-program, and not considered as options of kdesrc-build
- When setting parameters to the runned executable, they are actually applied. 
Previously the run script surrounded the $@ in the quotes.
- Fixed indentation and unnecessary semicolons in executable script.
- Made more clear note information when launching. The debug level controls if 
it will be displayed.

M  +0-1CMakeLists.txt
M  +0-1README.md
M  +0-1completions/zsh/_kdesrc-build
M  +4-4data/kdesrc-run-completions.sh
M  +1-1doc/man-kdesrc-build.1.docbook
M  +3-23   doc/supported-cmdline-params.docbook
D  +0-134  kdesrc-run
M  +2-40   modules/ksb/Application.pm
M  +22   -5modules/ksb/Cmdline.pm
A  +122  -0modules/ksb/StartProgram.pm
M  +2-2modules/ksb/TaskManager.pm
M  +1-1scripts/gen_zsh_completions.py

https://invent.kde.org/sdk/kdesrc-build/-/commit/301b9b4caf1b84bf2e14bd616fec06683f5a2d18

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bae5fd53..03047adb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,7 +46,6 @@ endif()
 
 # Currently, kdesrc-build real file (not a symlink) expects to be near its 
data and modules. Need to make a symlink in PKGBUILD then.
 install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kdesrc-build DESTINATION 
${KDE_INSTALL_DATADIR}/kdesrc-build)
-install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kdesrc-run DESTINATION 
${KDE_INSTALL_DATADIR}/kdesrc-build)
 
 install(DIRECTORY data/ DESTINATION ${KDE_INSTALL_DATADIR}/kdesrc-build/data)
 
diff --git a/README.md b/README.md
index c95e6d8b..8f253dcc 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,6 @@ For other distributions, you will need to make a local 
installation:
 $ cd ~/.local/share
 $ git clone https://invent.kde.org/sdk/kdesrc-build.git
 $ ln -sf ~/.local/share/kdesrc-build/kdesrc-build ~/.local/bin
-$ ln -sf ~/.local/share/kdesrc-build/kdesrc-run ~/.local/bin
 ```
 
 - Make sure it works by running:
diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build
index bc8202e4..600811e8 100644
--- a/completions/zsh/_kdesrc-build
+++ b/completions/zsh/_kdesrc-build
@@ -75,7 +75,6 @@ _arguments \
   "(--run-tests --no-run-tests)"{--run-tests,--no-run-tests}"[Built the 
modules with support for running their test suite]" \
   "--set-module-option-value""[Override an option in your configuration file 
for a specific module]"":argument:" \
   "--source-dir""[Directory that stores the KDE sources]"":argument:" \
-  "(--run --start-program)"{--run,--start-program}"[A program to run with 
kdesrc-build]"":arguments:" \
   "(--stop-on-failure 
--no-stop-on-failure)"{--stop-on-failure,--no-stop-on-failure}"[Stops/Does not 
stop the build as soon as a package fails to build]" \
   "--tag""[Download a specific release of a module]"":argument:" \
   "--uninstall""[Uninstalls the module]" \
diff --git a/data/kdesrc-run-completions.sh b/data/kdesrc-run-completions.sh
index 47e222ff..820259e2 100644
--- a/data/kdesrc-run-completions.sh
+++ b/data/kdesrc-run-completions.sh
@@ -1,5 +1,5 @@
-## Autocomplete for kdesrc-run
-function _comp_kdesrc_run
+## Autocomplete for kdesrc-build --run
+function _comp_kdesrc_build_run
 {
   local cur
   COMPREPLY=()
@@ -10,7 +10,7 @@ function _comp_kdesrc_run
 return 0
   fi
 
-  # Retrieve build modules through kdesrc-run
+  # Retrieve build modules through kdesrc-build
   # If the exit status indicates failure, set the wordlist empty to avoid
   # unrelated messages.
   local modules
@@ -26,4 +26,4 @@ function _comp_kdesrc_run
 }
 
 ## Register autocomplete function
-complet

[sdk/kdesrc-build] /: Move --list-installed to kdesrc-build

2024-02-17 Thread Andrew Shark
Git commit 733b492414f2c1e49986106070f05cf68cd1a752 by Andrew Shark.
Committed on 17/02/2024 at 14:09.
Pushed by ashark into branch 'master'.

Move --list-installed to kdesrc-build

M  +1-0completions/zsh/_kdesrc-build
M  +1-1data/kdesrc-run-completions.sh
M  +9-0doc/supported-cmdline-params.docbook
M  +1-10   kdesrc-run
M  +6-0modules/ksb/Application.pm
M  +1-0modules/ksb/Cmdline.pm
M  +1-0scripts/gen_zsh_completions.py

https://invent.kde.org/sdk/kdesrc-build/-/commit/733b492414f2c1e49986106070f05cf68cd1a752

diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build
index e563f53d..bc8202e4 100644
--- a/completions/zsh/_kdesrc-build
+++ b/completions/zsh/_kdesrc-build
@@ -49,6 +49,7 @@ _arguments \
   "(--install-session-driver 
--no-install-session-driver)"{--install-session-driver,--no-install-session-driver}"[Install
 a driver for the graphical login manager]" \
   "--libname""[Default name of the installed library directory]"":argument:" \
   "--libpath""[Set the environment variable LD_LIBRARY_PATH while 
building]"":argument:" \
+  "--list-installed""[Print installed modules and exit]" \
   "--log-dir""[Directory used to hold the log files generated by the 
script]"":argument:" \
   "--make-install-prefix""[A command and its options to precede the make 
install command used to install modules]"":argument:" \
   "--make-options""[Pass command line options to the make 
command]"":argument:" \
diff --git a/data/kdesrc-run-completions.sh b/data/kdesrc-run-completions.sh
index a49319d2..47e222ff 100644
--- a/data/kdesrc-run-completions.sh
+++ b/data/kdesrc-run-completions.sh
@@ -14,7 +14,7 @@ function _comp_kdesrc_run
   # If the exit status indicates failure, set the wordlist empty to avoid
   # unrelated messages.
   local modules
-  if ! modules=$(kdesrc-run --list-installed);
+  if ! modules=$(kdesrc-build --list-installed);
   then
   modules=""
   fi
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index a6d1a9aa..fb02d2d3 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -350,6 +350,15 @@ kdepim: master
 
 
 
+
+--list-installed
+
+
+Print installed modules and exit. This can be used to generate autocompletion 
for the --run option.
+
+
+
+
 
 
 
diff --git a/kdesrc-run b/kdesrc-run
index b27d82a1..90c55560 100755
--- a/kdesrc-run
+++ b/kdesrc-run
@@ -18,7 +18,6 @@ kdesrc-run [options]  [arguments]
   -f, --fork  Launch the program in a new session.
   -q, --quiet Do not print run information.
   -h, --help  Print usage information and exit.
-  --list-installedPrint installed modules and exit.
 
 =head1 EXAMPLES
 
@@ -49,17 +48,15 @@ our $optExec;
 our $optFork  = 0;
 our $optHelp  = 0;
 our $optQuiet = 0;
-our $optListInstalled = 0;
 
 GetOptions(
 'exec|e=s'   => \$optExec,
 'fork|f' => \$optFork,
 'help|h' => sub { pod2usage(0); },
 'quiet|q'=> \$optQuiet,
-'list-installed' => \$optListInstalled,
 );
 
-if ($#ARGV == -1 && not $optListInstalled) {
+if ($#ARGV == -1) {
 pod2usage(0);
 }
 
@@ -84,12 +81,6 @@ my $buildData = do {
 decode_json(<$fh>);
 };
 
-if ($optListInstalled) {
-say foreach sort { $a cmp $b }
-grep { defined $buildData->{$_}{'install-dir'} } keys %$buildData;
-exit;
-}
-
 if (not defined $buildData->{$module}) {
 say qq(Module "$module" has not been built yet.);
 exit 1;
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 53cf4431..952f3f8f 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -311,6 +311,12 @@ EOF
 unshift @selectors, split(/,\s*/, $moduleList);
 }
 
+if (exists $cmdlineGlobalOptions->{"list-installed"}) {
+say foreach sort { $a cmp $b }
+grep { defined $ctx->{persistent_options}->{$_}{'install-dir'} } 
keys %{$ctx->{persistent_options}};
+exit;
+}
+
 my %ignored_in_global_section =
 map { $_, 1 } split(" ", $ctx->{options}->{"ignore-modules"});
 $ctx->{options}->{"ignore-modules"} = "";
diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm
index a7d6e51b..2950c890 100644
--- a/modules/ksb/Cmdline.pm
+++ b/modules/ksb/Cmdline.pm
@@ -426,6 +426,7 @@ sub _supportedOptions
 'dependency-tree',
 'dependency-tree-fullpath',
 'help|h',
+"list-installed",
 'metadata-only',
 'no-metadata|M',
 'query=s',
diff --git a/scripts/gen_zsh_completions.py b/scripts/gen_zsh_

[sdk/kdesrc-build] /: Remove update-shellrc step

2024-02-15 Thread Andrew Shark
Git commit 5d7dcacee6fd89feae01f197e278f61a1ddead8b by Andrew Shark.
Committed on 15/02/2024 at 11:44.
Pushed by ashark into branch 'master'.

Remove update-shellrc step

It basically just added to the shellrc the path to the running script. That is 
not handled correctly in all cases.

Also, it tried to add kdesrc-run bash autocompletion, but the code was not 
handling all cases correctly anyway.

Instead, we will offer to install the file in the correct place in the first 
place.
Regarding PATH, that should be in user's control.

M  +1-1README.md
M  +0-1completions/zsh/_kdesrc-build
M  +1-13   doc/man-kdesrc-build.1.docbook
M  +1-12   doc/supported-cmdline-params.docbook
M  +0-4kdesrc-build
M  +3-4modules/ksb/Cmdline.pm
M  +0-78   modules/ksb/FirstRun.pm
M  +0-1scripts/gen_zsh_completions.py

https://invent.kde.org/sdk/kdesrc-build/-/commit/5d7dcacee6fd89feae01f197e278f61a1ddead8b

diff --git a/README.md b/README.md
index c4aaa3fb..c95e6d8b 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,7 @@ $ kdesrc-build --initial-setup
 ```
 
 This will install the distribution packages dependencies required by 
`kdesrc-build`,
-generate a configuration file, and add itself to your path for convenience.
+generate a configuration file.
 
 ### Download the KDE project and dependency data:
 
diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build
index 8dccee6f..ce83af68 100644
--- a/completions/zsh/_kdesrc-build
+++ b/completions/zsh/_kdesrc-build
@@ -78,7 +78,6 @@ _arguments \
   "(--stop-on-failure 
--no-stop-on-failure)"{--stop-on-failure,--no-stop-on-failure}"[Stops/Does not 
stop the build as soon as a package fails to build]" \
   "--tag""[Download a specific release of a module]"":argument:" \
   "--uninstall""[Uninstalls the module]" \
-  "--update-shellrc""[Installs Plasma env vars (~/.bashrc)]" \
   "(--use-clean-install 
--no-use-clean-install)"{--use-clean-install,--no-use-clean-install}"[Run make 
uninstall directly before running make install]" \
   "(--use-idle-io-priority 
--no-use-idle-io-priority)"{--use-idle-io-priority,--no-use-idle-io-priority} \
   "(--use-inactive-modules 
--no-use-inactive-modules)"{--use-inactive-modules,--no-use-inactive-modules}"[Allow
 kdesrc-build to also clone and pull from repositories marked as inactive]" \
diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook
index 352da7ff..f97209c9 100644
--- a/doc/man-kdesrc-build.1.docbook
+++ b/doc/man-kdesrc-build.1.docbook
@@ -130,7 +130,7 @@ combining short options into one at this point. (E.g. 
running
 default configuration file setup, and changes to your ~/.bashrc to make the
 software installed by  accessible.
 
-This is exactly equivalent to using "--install-distro-packages 
--generate-config --update-shellrc" at the same time.
+This is exactly equivalent to using "--install-distro-packages 
--generate-config" at the same time.
 
 
 
@@ -160,18 +160,6 @@ Generate the  configuration file.
 
 
 
-
-
---update-shellrc
-
-
-
-
-Edit the "~/.bashrc" (or other shell rc file) to add  to your 
$PATH variable and enable autocompletion.
-
-
-
-
 
 
 -p, --pretend
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index c3202192..a6d1a9aa 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -564,12 +564,11 @@ software to run.
 
 Installing known dependencies (on supported  
distributions)
 Adding required environment variables to 
~/.bashrc
-Setting up a configuration 
file
 
 This option is exactly equivalent to using
 --install-distro-packages
 --generate-config
---update-shellrc at the same 
time.
+at the same time.
 
 
 
@@ -593,16 +592,6 @@ Generate the  configuration file.
 
 
 
-
---update-shellrc
-
-Edit the "~/.bashrc" (or other shell rc file) to add  to your 
$PATH variable and enable autocompletion.
-
-See also --initial-setup
-
-
-
-
 
 
 
diff --git a/kdesrc-build b/kdesrc-build
index 9caeb9cb..1db44550 100755
--- a/kdesrc-build
+++ b/kdesrc-build
@@ -91,7 +91,6 @@ eval {
 if (grep { $_ eq "--initial-setup" } @ARGV) {
 push @setup_steps, "install-distro-packages";
 push @setup_steps, "generate-config";
-push @setup_steps, "update-shellrc";
 } else {
 if (grep {$_ eq "--install-distro-packages"} @ARGV) {
 push @setup_steps, "install-distro-packages";
@@ -99,9 +98,6 @@ eval {
 if (grep {$_ eq "--generate-config"} @ARGV) {
 push @setup_steps, "generate-config";
 }
-if (grep {$_ eq "--update-shellrc"} @ARGV) {
-push @setup_steps, "update-

[sdk/kdesrc-build] /: Cmdline: Use -M as short form of --no-metadata

2024-02-14 Thread Andrew Shark
Git commit 6bcfb3205897b8d0b40f66e88f7ee155076f79e4 by Andrew Shark.
Committed on 14/02/2024 at 09:45.
Pushed by ashark into branch 'master'.

Cmdline: Use -M as short form of --no-metadata

M  +1-1doc/man-kdesrc-build.1.docbook
M  +1-1doc/supported-cmdline-params.docbook
M  +1-1modules/ksb/Cmdline.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/6bcfb3205897b8d0b40f66e88f7ee155076f79e4

diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook
index bdadfe7e..352da7ff 100644
--- a/doc/man-kdesrc-build.1.docbook
+++ b/doc/man-kdesrc-build.1.docbook
@@ -232,7 +232,7 @@ Edit the "~/.bashrc" (or other shell rc file) to add 
 to your $PAT
 
 
 
---no-metadata
+-M, --no-metadata
 
 
 
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index 95367ed7..c3202192 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -358,7 +358,7 @@ kdepim: master
 
 
 
---no-metadata
+--no-metadata (or 
-M)
 
 Do not automatically download the extra metadata needed for  git modules.
 The source updates for the modules themselves will still occur unless you pass
diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm
index ab9edb42..933a82fd 100644
--- a/modules/ksb/Cmdline.pm
+++ b/modules/ksb/Cmdline.pm
@@ -428,7 +428,7 @@ sub _supportedOptions
 'dependency-tree-fullpath',
 'help|h',
 'metadata-only',
-'no-metadata',
+'no-metadata|M',
 'query=s',
 'rc-file=s',
 'rebuild-failures',


[sdk/kdesrc-build] /: Add build-system query mode

2024-02-10 Thread Andrew Shark
Git commit 139fdc94f4e4a469ff3b0f245a3626f3b58e3556 by Andrew Shark.
Committed on 10/02/2024 at 12:33.
Pushed by ashark into branch 'master'.

Add build-system query mode

M  +4-0doc/man-kdesrc-build.1.docbook
M  +4-0doc/supported-cmdline-params.docbook
M  +2-0modules/ksb/Application.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/139fdc94f4e4a469ff3b0f245a3626f3b58e3556

diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook
index d8c7f41c..bdadfe7e 100644
--- a/doc/man-kdesrc-build.1.docbook
+++ b/doc/man-kdesrc-build.1.docbook
@@ -683,6 +683,10 @@ one of the following:
 module-set, which causes  to
 output the name of module-set which contains the module. This can be 
used
 to generate zsh autocompletion cache.
+build-system, which causes  
to
+output the name of build system detected for the module. This can be 
used
+to debug build system auto-detection problems, or when developing 
tests for specific build systems.
+
 Otherwise, option names that are valid for modules in the
 configuration file can be used, the resolved value of which will be
 listed for each module.
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index 86eaf976..95367ed7 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -306,6 +306,10 @@ one of the following:
 output the name of module-set which contains the module. This can be 
used
 to generate zsh autocompletion cache.
 
+build-system, which causes 
 to
+output the name of build system detected for the module. This can be 
used
+to debug build system auto-detection problems, or when developing 
tests for specific build systems.
+
 Any option name that is valid for modules in the
 configuration file.
 
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 0bc1b082..73ec5b12 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -624,6 +624,8 @@ sub runAllModulePhases
 $query = sub 
{($_[0]->scm()->_determinePreferredCheckoutSource())[0] // ""}
 } elsif ($queryMode eq "module-set") {
 $query = sub { $_[0]->{"module-set"}->{"name"} // 
"undefined_module-set"}
+} elsif ($queryMode eq "build-system") {
+$query = sub { $_[0]->buildSystem()->name() }
 } else {  # Default to ->getOption as query method.
 $query = sub { $_[0]->getOption($queryMode) }
 }


[sdk/kdesrc-build] /: Remove --print-modules and --list-build options

2024-02-10 Thread Andrew Shark
Git commit 08c6bb39486fc51aca90a20708f65ee3ae7eb0eb by Andrew Shark.
Committed on 10/02/2024 at 09:37.
Pushed by ashark into branch 'master'.

Remove --print-modules and --list-build options

There are already `--query module-set` and `--query branch` options, no need to 
create unnecessarily entities.

The --list-build tree indentation was not properly implemented, but made 
correctly in dependency-tree.

The #dependency-level sticky option was never set, so print-modules indentation 
was broken forever.

The zsh completion script relied on --list-build option and needs to be 
reworked.

M  +0-2completions/zsh/_kdesrc-build
M  +1-1completions/zsh/_kdesrc-build_modules
M  +1-5doc/README.md
M  +0-67   doc/man-kdesrc-build.1.docbook
M  +0-48   doc/supported-cmdline-params.docbook
M  +0-25   modules/ksb/Application.pm
M  +0-4modules/ksb/Cmdline.pm
M  +5-3scripts/gen_zsh_completions.py

https://invent.kde.org/sdk/kdesrc-build/-/commit/08c6bb39486fc51aca90a20708f65ee3ae7eb0eb

diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build
index 4e42e40c..8dccee6f 100644
--- a/completions/zsh/_kdesrc-build
+++ b/completions/zsh/_kdesrc-build
@@ -49,7 +49,6 @@ _arguments \
   "(--install-session-driver 
--no-install-session-driver)"{--install-session-driver,--no-install-session-driver}"[Install
 a driver for the graphical login manager]" \
   "--libname""[Default name of the installed library directory]"":argument:" \
   "--libpath""[Set the environment variable LD_LIBRARY_PATH while 
building]"":argument:" \
-  "--list-build""[List what modules would be built in the order in which they 
would be built]" \
   "--log-dir""[Directory used to hold the log files generated by the 
script]"":argument:" \
   "--make-install-prefix""[A command and its options to precede the make 
install command used to install modules]"":argument:" \
   "--make-options""[Pass command line options to the make 
command]"":argument:" \
@@ -61,7 +60,6 @@ _arguments \
   "--override-build-system""[Manually specify the correct build 
type]"":argument:" \
   "--persistent-data-file""[Change where kdesrc-build stores its persistent 
data]"":argument:" \
   "(--dry-run --pretend -p)"{--dry-run,--pretend,-p}"[Dont actually take major 
actions, instead describe what would be done]" \
-  "--print-modules""[Prints the modules that would be processed]" \
   "(--purge-old-logs 
--no-purge-old-logs)"{--purge-old-logs,--no-purge-old-logs}"[Automatically 
delete old log directories]" \
   "--qmake-options""[Options passed to the qmake command]"":argument:" \
   "--qt-install-dir""[Where to install qt modules after build]"":argument:" \
diff --git a/completions/zsh/_kdesrc-build_modules 
b/completions/zsh/_kdesrc-build_modules
index 0e5a1d30..ec91aa82 100644
--- a/completions/zsh/_kdesrc-build_modules
+++ b/completions/zsh/_kdesrc-build_modules
@@ -13,7 +13,7 @@ if _cache_invalid kdesrc_build_modules || ! _retrieve_cache 
kdesrc_build_modules
   # (@) array Expansion Flags are needed because we need to operate on each 
element separately.
   kdesrc_build_modules=( "${(@)${(@)${(@)${(f)"$(
 _call_program kdesrc-build-modules \
-  kdesrc-build --list-build --no-src
+  kdesrc-build --query module-set --no-src
 )"}[1,-2]}# ── }%% *}" )
   _store_cache kdesrc_build_modules kdesrc_build_modules
 fi
diff --git a/doc/README.md b/doc/README.md
index 0c846677..9d51bc55 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -48,10 +48,6 @@ These are some kdesrc-build tricks that probably should be 
documented with the
 [KDE Community Wiki 
page](https://community.kde.org/Get_Involved/development#Set_up_kdesrc-build)
 but for now they're at least worth nothing here:
 
-- Use `--print-modules` to view which modules kdesrc-build would build, in the
-  order they would be built in. This implies `--pretend` although it doesn't 
hurt
-  to include that.
-
 - Use `kdesrc-build --rebuild-failures` (potentially with `--no-src`) to
   rebuild modules that failed to build during the last kdesrc-build run. This
   is particularly useful when a silly local error breaks an important module
@@ -107,7 +103,7 @@ but for now they're at least worth nothing here:
 - Use `--resume-from` (or `--resume-after`) to have kdesrc-build start the
   build from a later module than normal, and `--stop-before` (or
   `--stop-after`) to have kdesrc-build stop the build at an earlier module than
-  normal. This can also be used with `--print-modules`.
+  normal.
 
 - Use the `ignore-modules` option with your module sets if you want to build

[sdk/kdesrc-build] /: query: Add module-set query mode

2024-02-05 Thread Andrew Shark
Git commit abe4cf121e3691008de810105bb6f1e7901945b6 by Andrew Shark.
Committed on 05/02/2024 at 15:28.
Pushed by ashark into branch 'master'.

query: Add module-set query mode

This can be used for example for querying all defined modules and module-sets, 
for preparing zsh autocompletion cache

M  +3-0doc/man-kdesrc-build.1.docbook
M  +4-0doc/supported-cmdline-params.docbook
M  +2-0modules/ksb/Application.pm

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

diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook
index 6402063b..6556b358 100644
--- a/doc/man-kdesrc-build.1.docbook
+++ b/doc/man-kdesrc-build.1.docbook
@@ -686,6 +686,9 @@ one of the following:
 branch and branch-group settings in
 effect.
 
+module-set, which causes  to
+output the name of module-set which contains the module. This can be 
used
+to generate zsh autocompletion cache.
 Otherwise, option names that are valid for modules in the
 configuration file can be used, the resolved value of which will be
 listed for each module.
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index 4cb6e494..b52bf204 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -302,6 +302,10 @@ one of the following:
 linkend="conf-branch">branch and branch-group settings in effect.
 
+module-set, which causes 
 to
+output the name of module-set which contains the module. This can be 
used
+to generate zsh autocompletion cache.
+
 Any option name that is valid for modules in the
 configuration file.
 
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index c4cf0a59..320ce3e8 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -647,6 +647,8 @@ sub runAllModulePhases
 $query = sub { $_[0]->fullProjectPath() }
 } elsif ($queryMode eq "branch") {
 $query = sub 
{($_[0]->scm()->_determinePreferredCheckoutSource())[0] // ""}
+} elsif ($queryMode eq "module-set") {
+$query = sub { $_[0]->{"module-set"}->{"name"} // 
"undefined_module-set"}
 } else {  # Default to ->getOption as query method.
 $query = sub { $_[0]->getOption($queryMode) }
 }



[sdk/kdesrc-build] /: query: Make behavior the same when one module is queried

2024-02-05 Thread Andrew Shark
Git commit 49ec03c7dca5a0cabaeb54fb34a9100dd6c2b2e4 by Andrew Shark.
Committed on 05/02/2024 at 14:20.
Pushed by ashark into branch 'master'.

query: Make behavior the same when one module is queried

M  +0-7doc/man-kdesrc-build.1.docbook
M  +0-7doc/supported-cmdline-params.docbook
M  +3-9modules/ksb/Application.pm
M  +0-5modules/ksb/Cmdline.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/49ec03c7dca5a0cabaeb54fb34a9100dd6c2b2e4

diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook
index 59279ee1..6402063b 100644
--- a/doc/man-kdesrc-build.1.docbook
+++ b/doc/man-kdesrc-build.1.docbook
@@ -692,13 +692,6 @@ one of the following:
 
 
 
-
-If a single module is passed on the command line, then the output is simply the
-value of the parameter being queried. If multiple (or no) modules are passed on
-the command line, then each line is prefixed by the name of the module. Either
-way, kdesrc-build stops running once each value is output.
-
-
 This option was added with kdesrc-build 16.05.
 
 
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index 7c4f8f31..4cb6e494 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -307,13 +307,6 @@ one of the following:
 
 
 
-
-If a single module is passed on the command line, then the output is simply the
-value of the parameter being queried. If multiple (or no) modules are passed on
-the command line, then each line is prefixed by the name of the module. Either 
way,
- stops running once each value is output.
-
-
 
 For example, the command kdesrc-build
 --query branch 
kactivities 
kdepim
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 3aaa41e7..bebc229e 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -642,16 +642,10 @@ sub runAllModulePhases
 $query = sub { $_[0]->fullpath('build') }  if $queryMode eq 
'build-dir';
 $query = sub { $_[0]->installationPath() } if $queryMode eq 
'install-dir';
 $query = sub { $_[0]->fullProjectPath() }  if $queryMode eq 
'project-path';
-$query = sub { ($_[0]->scm()->_determinePreferredCheckoutSource())[0] 
// '' }
-if $queryMode eq 'branch';
+$query = sub { ($_[0]->scm()->_determinePreferredCheckoutSource())[0] 
// '' } if $queryMode eq 'branch';
 
-if (@modules == 1) {
-# No leading module name, just the value
-say $query->($modules[0]);
-} else {
-for my $m (@modules) {
-say "$m: ", $query->($m);
-}
+for my $m (@modules) {
+say "$m: ", $query->($m);
 }
 
 return 0;
diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm
index 055676b8..efb13ab2 100644
--- a/modules/ksb/Cmdline.pm
+++ b/modules/ksb/Cmdline.pm
@@ -198,11 +198,6 @@ sub readCommandLineOptionsAndSelectors (@options)
 die("Invalid query mode $arg")
 unless $arg =~ $validMode;
 
-# Add useful aliases
-$arg = 'source-dir'  if $arg =~ /^src-?dir$/;
-$arg = 'build-dir'   if $arg =~ /^build-?dir$/;
-$arg = 'install-dir' if $arg =~ /^install-?dir$/;
-
 $opts->{run_mode} = 'query';
 $auxOptions{query} = $arg;
 $auxOptions{pretend} = 1; # Implied pretend mode



[sdk/kdesrc-build] /: RecursiveFH: Support variables in include lines

2024-02-02 Thread Andrew Shark
Git commit 399806c1efd4514b75c9f1254bb4b408f02a7221 by Andrew Shark.
Committed on 02/02/2024 at 08:07.
Pushed by ashark into branch 'master'.

RecursiveFH: Support variables in include lines

M  +12   -0doc/kdesrc-buildrc.docbook
M  +1-1modules/ksb/Application.pm
M  +22   -1modules/ksb/RecursiveFH.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/399806c1efd4514b75c9f1254bb4b408f02a7221

diff --git a/doc/kdesrc-buildrc.docbook b/doc/kdesrc-buildrc.docbook
index 1ad21432..dd038296 100644
--- a/doc/kdesrc-buildrc.docbook
+++ b/doc/kdesrc-buildrc.docbook
@@ -222,6 +222,18 @@ end global
 the file will be searched for starting from the directory containing the source
 file. This works recursively as well.
 
+You can use variables in the value of include instruction:
+
+global
+  _ver 6
+  source-dir ~/kde${_ver}/src
+  ...
+  persistent-data-file 
~/kde${_ver}/persistent-options.json
+end global
+
+include 
~/kde6/src/kdesrc-build/data/build-include/kf${_ver}-qt${_ver}.ksb
+
+
 
 
 
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 3d33a988..3aaa41e7 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -1097,7 +1097,7 @@ sub _readConfigurationOptions ($ctx, $fh, 
$cmdlineGlobalOptions, $deferredOption
 my $rcfile = $ctx->rcFile();
 my ($option, %readModules);
 
-my $fileReader = ksb::RecursiveFH->new($rcfile);
+my $fileReader = ksb::RecursiveFH->new($rcfile, $ctx);
 $fileReader->addFile($fh, $rcfile);
 
 # Read in global settings
diff --git a/modules/ksb/RecursiveFH.pm b/modules/ksb/RecursiveFH.pm
index 86d752b3..c5fcdb42 100644
--- a/modules/ksb/RecursiveFH.pm
+++ b/modules/ksb/RecursiveFH.pm
@@ -12,13 +12,14 @@ use File::Basename; # dirname
 # TODO: Replace make_exception with appropriate croak_* function.
 sub new
 {
-my ($class, $rcfile) = @_;
+my ($class, $rcfile, $ctx) = @_;
 my $data = {
 'filehandles' => [],# Stack of filehandles to read
 'filenames'   => [],# Corresponding tack of filenames (full paths)
 'base_path'   => [],# Base directory path for relative includes
 'current' => undef, # Current filehandle to read
 'current_fn'  => undef, # Current filename
+'ctx' => $ctx,
 };
 
 my $self = bless($data, $class);
@@ -158,6 +159,26 @@ sub readLine
 EOM
 }
 
+my $optionRE = qr/\$\{([a-zA-Z0-9-_]+)\}/;  # Example of matched 
string is "${option-name}" or "${_option-name}".
+my $ctx = $self->{ctx};
+
+# Replace reference to global option with their value.
+my ($sub_var_name) = ($filename =~ $optionRE);
+while ($sub_var_name)
+{
+my $sub_var_value = $ctx->getOption($sub_var_name) || "";
+if(!$ctx->hasOption($sub_var_name)) {
+warning (" *\n * WARNING: y[$sub_var_name] used in 
$self->{current_fn}:$. is not set in global context.\n *");
+}
+
+debug ("Substituting \${$sub_var_name} with $sub_var_value");
+
+$filename =~ s/\$\{$sub_var_name\}/$sub_var_value/g;
+
+# Replace other references as well.
+($sub_var_name) = ($filename =~ $optionRE);
+}
+
 open ($newFh, '<', $filename) or
 die make_exception('Config', "Unable to open file '$filename' 
which was included from $self->{current_fn}:$.");
 


[sdk/kdesrc-build] doc: doc: Define scopes for modules selection options

2024-01-29 Thread Andrew Shark
Git commit d974610efba6140798b10d13d092558e9226f796 by Andrew Shark.
Committed on 29/01/2024 at 21:21.
Pushed by ashark into branch 'master'.

doc: Define scopes for modules selection options

M  +16   -16   doc/conf-options-table.docbook

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

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index 345ef74e..b35d520c 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -1,17 +1,16 @@
 
 Table of available configuration options
 
-Here is a table of the various options, containing the following
+Here are tables of various options, containing the following
 information:
 
 
 
 The option name
 
-A description of how  responds if the option is
-set in both the global section, and the module section of the configuration file while building a
-module.
+The scope of the option: global, 
module or module-set.
+Options in module or/and module-set 
scope can also be defined in options sections.
+
 
 Special comments on the purpose and usage of the
 option.
@@ -1316,7 +1315,7 @@ installations. However this only works on build systems 
that support
 
 
 no-src
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove update phase. The other phases that were 
presented will still be processed.
 Related command-line option: 
@@ -1325,7 +1324,7 @@ installations. However this only works on build systems 
that support
 
 
 no-install
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove install phase. The other phases that were 
presented will still be processed.
 Related command-line option: 
@@ -1334,7 +1333,7 @@ installations. However this only works on build systems 
that support
 
 
 no-tests
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove test phase. The other phases that were 
presented will still be processed.
 Related command-line option: --no-tests
@@ -1343,7 +1342,7 @@ installations. However this only works on build systems 
that support
 
 
 no-build
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove build phase. The other phases that were 
presented will still be processed.
 Related command-line option: 
@@ -1352,7 +1351,7 @@ installations. However this only works on build systems 
that support
 
 
 build-only
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 If had build phase, remove any other phases. 
Otherwise, remove all phases.
 Related command-line option: 
@@ -1361,7 +1360,7 @@ installations. However this only works on build systems 
that support
 
 
 install-only
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 If had install phase, remove any other phases. 
Otherwise, remove all phases.
 Related command-line option: 
@@ -1370,7 +1369,7 @@ installations. However this only works on build systems 
that support
 
 
 uninstall
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 If had uninstall phase, remove any other phases. 
Otherwise, remove all phases.
 Related command-line option: --uninstall
@@ -1379,7 +1378,7 @@ installations. However this only works on build systems 
that support
 
 
 filter-out-phases
-globalmodulemodule-setoptions
+globalmodulemodule-set
 
 Remove those phases that are listed (space separated) in this option. 
The other phases that were presented will still be processed.
 
@@ -1390,12 +1389,13 @@ installations. However this only works on build systems 
that support
 
 
 
-Module-set and global scope options
+Modules selection options
 
 
 
 
 Option name
+Scope
 Description
 
 
@@ -1404,12 +1404,12 @@ installations. However this only works on build systems 
that support
 
 
 ignore-modules
+globalmodule-set
 
 
 TypeString
 Available since1.16
 
-This option can be used in global section and in module-sets.
 Note that when specified in global section,  cmdline 
option does not override this, but instead appends.
 Modules named by this option, which would be chosen by 
 due to a use-modules option, are
@@ -1436,12 +1436,12 @@ is compared).
 
 
 use-modules
+module-set
 
 
 TypeString
 Available since1.12.1
 
-Can only be used in module-set.
 This option allows you to easily
 specify many different modules to build at the same point in the configuration file.


[sdk/kdesrc-build] /: Support phase selection individually for modules and module-sets

2024-01-28 Thread Andrew Shark
Git commit d8104fa8e9defa5b25f7eab538a7b0f2fc652e1d by Andrew Shark.
Committed on 28/01/2024 at 21:24.
Pushed by ashark into branch 'master'.

Support phase selection individually for modules and module-sets

Previously we could only select phases globally from command line. They were 
applied to all modules.

Sometimes user want to control phase selection for individual module.

The clone is happening from the remote/origin by default. This becomes a 
problem when user is working with a local branch that is not presented in 
remote. For example, user may not have a developer account, or just does not 
want to upload his work even in work/user branch yet.

He just wants kdesrc-build to not touch the sources of that module (while the 
other modules still be updated), and does not want to exclude module from build 
phase.

Let's say user wants to work with `kio`, and testing it with `ark`.
Previously, user could achieve this task by running `kdesrc-build` several 
times. Different quirks were needed. Example:
- `kdesrc-build ark --include-dependencies` - build ark with dependencies 
(including kio) as normal
- `...` - make changes to the kio project
- `kdesrc-build kio --no-src --no-include-dependencies`
- `kdesrc-build ark --include-dependencies --ignore-modules kio`

After this commit user can specify the `no-src` option for the `kio` module, 
and then just run `kdesrc-build ark --include-dependencies`. The `kio` will not 
be updated in this process, but will not be excluded from build phase.

BUG: 354796

M  +88   -14   doc/conf-options-table.docbook
M  +2-1modules/ksb/Application.pm
M  +0-1modules/ksb/BuildContext.pm
M  +13   -9modules/ksb/Cmdline.pm
M  +47   -1modules/ksb/Module.pm

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

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index ed52e6bc..63adbf01 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -1038,20 +1038,6 @@ end options
 
 
 
-
-no-src
-
-
-TypeBoolean
-Default valueFalse
-
-If this option is set to true then  will not update the
-source code for the module automatically. It will still try to build the
-module if it normally would have tried anyways.
-Related command-line option: 
-
-
-
 
 override-build-system
 
@@ -1314,6 +1300,94 @@ installations. However this only works on build systems 
that support
 
 
 
+
+These options do not require any value (except "filter-out-phases"). 
They are applied if they are presented in a section.
+Phase selection options
+
+
+
+
+Option name
+Scope
+Description
+
+
+
+
+
+no-src
+globalmodulemodule-setoptions
+
+Remove update phase. The other phases that were 
presented will still be processed.
+Related command-line option: 
+
+
+
+
+no-install
+globalmodulemodule-setoptions
+
+Remove install phase. The other phases that were 
presented will still be processed.
+Related command-line option: 
+
+
+
+
+no-tests
+globalmodulemodule-setoptions
+
+Remove test phase. The other phases that were 
presented will still be processed.
+Related command-line option: --no-tests
+
+
+
+
+no-build
+globalmodulemodule-setoptions
+
+Remove build phase. The other phases that were 
presented will still be processed.
+Related command-line option: 
+
+
+
+
+build-only
+globalmodulemodule-setoptions
+
+If had build phase, remove any other phases. 
Otherwise, remove all phases.
+Related command-line option: 
+
+
+
+
+install-only
+globalmodulemodule-setoptions
+
+If had install phase, remove any other phases. 
Otherwise, remove all phases.
+Related command-line option: 
+
+
+
+
+uninstall
+globalmodulemodule-setoptions
+
+If had uninstall phase, remove any other phases. 
Otherwise, remove all phases.
+Related command-line option: --uninstall
+
+
+
+
+filter-out-phases
+globalmodulemodule-setoptions
+
+Remove those phases that are listed (space separated) in this option. 
The other phases that were presented will still be processed.
+
+
+
+
+
+
 
 
 Module-set and global scope options
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 24459d07..3d33a988 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -951,7 +951,8 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, 
$endRE=undef)
 _markModuleSource($module, $fileReader->currentFilename() . ":$.");
 $module->setOption('#entry_num', $moduleID++);
 
-my @all_possible_options = sort keys %{$ctx->{build_options}->{global}};
+my @phase_changing_options_canonical = map { my $element = $_; $element =~ 
s/\|.*//; $element } @ksb::Cmdline::phase_changing_options;
+my @all_possible_options = sort keys %{$ctx->{build_options}->{global}}, 
@phase_changing_options_canonical;
 
 # Read in each option
 while (($_ = _readNextLogicalLine($fileReader)) && ($_ !~ $endRE))
diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm

[sdk/kdesrc-build] /: Allow ignoring modules from global config

2024-01-27 Thread Andrew Shark
Git commit 66bff6dc56039cc75bcc64bc5a7c6fb38f9b1e82 by Andrew Shark.
Committed on 28/01/2024 at 07:28.
Pushed by ashark into branch 'master'.

Allow ignoring modules from global config

This will let users to constantly ignore specified modules in global section, 
so they do not need to pass it in command line each time.

Also, it will allow to ignore some defined modules that are not in any module 
set (for example, gpgme).

BUG: 472917

M  +2-2doc/conf-options-table.docbook
M  +3-1doc/supported-cmdline-params.docbook
M  +8-1modules/ksb/Application.pm
M  +13   -3modules/ksb/BuildContext.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/66bff6dc56039cc75bcc64bc5a7c6fb38f9b1e82

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index 8722b1ae..ed52e6bc 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -1335,8 +1335,8 @@ installations. However this only works on build systems 
that support
 TypeString
 Available since1.16
 
-Currently can only be used in module-set, see https://bugs.kde.org/show_bug.cgi?id=472917;>Bug 472917.
+This option can be used in global section and in module-sets.
+Note that when specified in global section,  cmdline 
option does not override this, but instead appends.
 Modules named by this option, which would be chosen by 
 due to a use-modules option, are
 instead skipped entirely. Use this option when you want to build an entire
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index 494a3363..7c4f8f31 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -53,7 +53,9 @@ Do not include the modules passed on the rest of the command 
line in the
 update/build process (this is useful if you want to build most of the modules
 in your configuration file and just skip
 a few).
-
+
+Note that this option does not override ignore-modules config option in global 
section. Instead, it appends it.
+
 
 
 
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 7847092a..24459d07 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -264,7 +264,7 @@ EOF
 }
 
 # Convert list to hash for lookup
-my %ignoredSelectors =
+my %ignored_in_cmdline =
 map { $_, 1 } @{$opts->{'ignore-modules'}};
 
 my @startProgramAndArgs = @{$opts->{'start-program'}};
@@ -313,6 +313,13 @@ EOF
 _readConfigurationOptions($ctx, $fh, $cmdlineGlobalOptions, 
$deferredOptions);
 close $fh;
 
+my %ignored_in_global_section =
+map { $_, 1 } split(" ", $ctx->{options}->{"ignore-modules"});
+$ctx->{options}->{"ignore-modules"} = "";
+
+# For user convenience, cmdline ignored selectors would not override the 
config selectors. Instead, they will be merged.
+my %ignoredSelectors = (%ignored_in_cmdline, %ignored_in_global_section);
+
 # Check if we're supposed to drop into an interactive shell instead.  If 
so,
 # here's the stop off point.
 
diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm
index a7b0e15b..b247796f 100644
--- a/modules/ksb/BuildContext.pm
+++ b/modules/ksb/BuildContext.pm
@@ -795,13 +795,23 @@ sub getOption ($self, $key, $level = 'module')
 $self->ksb::OptionsBase::getOption($key);
 }
 
-# OVERRIDE: Overrides OptionsBase::setOption to handle some global-only 
options.
+# OVERRIDE
 sub setOption
 {
 my ($self, %options) = @_;
 
-# Actually set options.
-$self->SUPER::setOption(%options);
+# Special case handling.
+if (exists $options{'filter-out-phases'}) {
+for my $phase (split(' ', $options{'filter-out-phases'})) {
+$self->phases()->filterOutPhase($phase);
+}
+delete $options{'filter-out-phases'};
+}
+
+# Our immediate parent class Module overrides this, but we actually
+# want the OptionsBase version to be used instead, because Module's 
version specifically checks for
+# some options prohibited for it (such as "ignore-modules") but we may 
want such for BuildContext.
+$self->ksb::OptionsBase::setOption(%options);
 
 # Automatically respond to various global option changes.
 while (my ($key, $value) = each %options) {


[sdk/kdesrc-build] /: Fix git-repository-base option

2024-01-25 Thread Andrew Shark
Git commit 5602388099291523942b475b51a2f6a2334012af by Andrew Shark.
Committed on 26/01/2024 at 05:17.
Pushed by ashark into branch 'master'.

Fix git-repository-base option

Before this commit, only the last occurrence of this option was applied to the 
build context.

Now we actually can use it several times in the global section, as it was 
intended.

- The actual reading of 'git-repository-base' was done when constructing 
OptionBase from the global section of the config.
- The merging options from the constructed OptionsBase object into the 
BuildContext was done in setOption of BuildContext, but because it was not 
properly handled in OptionsBase, only the last value was appeared in 
BuildContext's handling.
- Now it is handled in the OptionsBase also when merging (we expect that the 
type of value is a hash then).
- Remove incorrect placement of 'git-repository-base' to the checking of 
module-set option in the Module, so our BuildContex::setOption can call its 
parent class Module::setOption, which then can pass this option handling to its 
parent class OptionsBase::setOption.

Also:
- Move endWord suggestion next to the printed message. The actual endWord does 
not matter when parsing, so it makes code a bit more readable when 
understanding how it parses
- Edit comment so it better explains why we remove some options that we read 
from the config
- Move the config description in docbook to the correct scope

M  +60   -59   doc/conf-options-table.docbook
M  +6-5modules/ksb/Application.pm
M  +1-18   modules/ksb/BuildContext.pm
M  +1-1modules/ksb/Module.pm
M  +28   -0modules/ksb/OptionsBase.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/5602388099291523942b475b51a2f6a2334012af

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index 0573f12d..8722b1ae 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -108,6 +108,66 @@ protocol is most efficient.
 
 
 
+
+git-repository-base
+
+
+TypeString
+Available since1.12.1
+
+This option is used to create a short
+name to reference a specific Git repository base URL in later module set declarations, which is useful for
+quickly declaring many Git modules to build.
+
+You must specify two things (separated by a space): The name to assign
+to the base URL, and the actual base URL itself. For example:
+
+
+
+global
+# other options
+# This is the common path to all anonymous Git server modules.
+git-repository-base kde-git 
kde:
+end global
+
+# Module declarations
+
+module-set
+# Now you can use the alias you defined earlier, but 
only in a module-set.
+repository kde-git
+use-modules 
module1.git module2.git
+end module-set
+
+
+
+The module-set's use-modules option created two 
modules
+internally, with  behaving as if it had read:
+
+
+module module1
+repository kde:module1.git
+end module
+
+module module2
+repository kde:module2.git
+end module
+
+
+The kde:  repository prefix used above is a
+shortcut which will be setup by  automatically. See the TechBase
+https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL
+Renaming article for more information. Note that unlike most other
+options, this option can be specified multiple times in order to create as
+many aliases as necessary.
+
+It is not required to use this option to take advantage of 
module-set,
+this option exists to make it easy to use the same repository across many
+different module sets.
+
+
+
 
 install-environment-driver
 
@@ -1267,65 +1327,6 @@ installations. However this only works on build systems 
that support
 
 
 
-
-git-repository-base
-
-
-TypeString
-Available since1.12.1
-
-This option is used to create a short
-name to reference a specific Git repository base URL in later module set declarations, which is useful for
-quickly declaring many Git modules to build.
-
-You must specify two things (separated by a space): The name to assign
-to the base URL, and the actual base URL itself. For example:
-
-
-
-global
-# other options
-# This is the common path to all anonymous Git server modules.
-git-repository-base kde-git 
kde:
-end global
-
-# Module declarations
-
-module-set
-# Now you can use the alias you defined earlier, but 
only in a module-set.
-repository kde-git
-use-modules 
module1.git module2.git
-end module-set
-
-
-
-The module-set's use-modules option created two 
modules
-internally, with  behaving as if it had read:
-
-
-module module1
-repository kde:module1.git
-end module
-
-module module2
-repository kde:module2.git
-end module
-
-
-The kde:  repository prefix used above is a
-shortcut which will be setup by  automatically. See the TechBase
-https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL
-Renaming article for more information. Note that unlike most other
-options, this option can be specified multiple times in order to create as
-many aliases as nec

[sdk/kdesrc-build] doc: doc: Add related cli options to the config options table

2024-01-24 Thread Andrew Shark
Git commit 54b5af830ceb16b844a81b4707cb3e5a9ac943ef by Andrew Shark.
Committed on 24/01/2024 at 23:36.
Pushed by ashark into branch 'master'.

doc: Add related cli options to the config options table

M  +63   -8doc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/54b5af830ceb16b844a81b4707cb3e5a9ac943ef

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index e19ac4d0..0573f12d 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -40,7 +40,9 @@ option.
 
 This option enables the asynchronous mode of operation, where the source
 code update and the build process will be performed in parallel, instead of 
waiting for
-all of the source code updates before starting the build 
process.
+all of the source code updates before starting the build process.
+Related command-line option: 
+
 
 
 
@@ -52,6 +54,7 @@ all of the source code updates before starting the build 
process.
 Note that  will not output the
 color codes to anything but a terminal (such as xterm, , or the normal
  console).
+Related command-line option: 
 
 
 
@@ -67,6 +70,7 @@ color codes to anything but a terminal (such as xterm, 
, or the normal
 make sure that if you are using ssh-agent, it is actually managing some 
 identities. This is to try and prevent  from asking for your pass phrase
 for every module.
+Related command-line option: --disable-agent-check, 
--no-disable-agent-check
 
 
 
@@ -137,6 +141,7 @@ also disabled.
 unless you also pass the --delete-my-settings
 command-line option.
+Related command-line option: --install-environment-driver, 
--no-install-environment-driver
 
 
 
@@ -167,6 +172,7 @@ option to false.  If enabled, 
this feature also enabl
 unless you also pass the --delete-my-settings
 command-line option.
+Related command-line option: --install-session-driver, 
--no-install-session-driver
 
 
 
@@ -180,6 +186,7 @@ command-line option.
 Set this option to a number between 20 and 0. The higher the number, the
 lower a priority  will set for itself, i.e. the higher the
 number, the "nicer" the program is.
+Related command-line option: 
 
 
 
@@ -198,6 +205,7 @@ number of CPUs, this value is set to 4.
 
 See  for an example of this
 option's usage.
+Related command-line option: --num-cores 
value
 
 
 
@@ -225,6 +233,7 @@ any module in the same way that num-cores 
is used.
 If  cannot detect available memory then this value will be
 set to 2.
 
+Related command-line option: --num-cores-low-mem 
value
 
 
 
@@ -245,6 +254,7 @@ be saved to 
~/.local/state/kdesrc-build-data
 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.
 
+Related command-line option: --persistent-data-file 
file
 
 
 
@@ -273,6 +283,7 @@ linkend="ssh-agent-reminder"/>.
 Use lower priority for disk and other I/O, which can significantly 
improve the
 responsiveness of the rest of the system at the expense of slightly longer
 running times for .
+Related command-line option: --use-idle-io-priority, 
--no-use-idle-io-priority
 
 
 
@@ -284,6 +295,7 @@ running times for .
 Default valueFalse
 
 Allow kdesrc-build to also clone and pull from repositories marked as 
inactive.
+Related command-line option: --use-inactive-modules, 
--no-use-inactive-modules
 
 
 
@@ -319,6 +331,7 @@ variable should include the colon-separated paths of your 
development
 toolchain. The paths ${install-dir}/bin 
and
 ${qt-install-dir}/bin are automatically 
added. You
 may use the tilde (~) for any paths you add using this option.
+Related command-line option: --binpath 
path
 
 
 
@@ -333,6 +346,7 @@ may use the tilde (~) for any paths you add using this 
option.
 For most  modules you probably wish to use the branch-group option instead and use this
 option for case-by-case exceptions.
+Related command-line option: --branch 
value
 
 
 
@@ -369,6 +383,7 @@ modules (the common case).  See also .
 
 
+Related command-line option: --branch-group 
value
 
 
 
@@ -404,6 +419,7 @@ 
class="directory">/home/user-name/builddir.
 
 
 Perhaps surprisingly, this option can be changed per module.
+Related command-line option: --build-dir 
path
 
 
 
@@ -431,6 +447,7 @@ other optimizations, there are trade-offs for the 
correctness of your
 installation. For instance, changes to the qt or kdelibs modules may cause
 a rebuild of other modules to be necessary, even if the source code doesn't
 change at all.
+Related command-line option: 
 
 
 
@@ -450,7 +467,9 @@ as if unset.
 
 Note that if a valid generator is also specified through
 cmake-options it will override the
-value for cmake-generator.
+value for cmake-generator.
+Related command-line option: --cmake-generator 
value
+
 
 
 
@@ -470,7 +489,9 @@ of standard flags added by  for more 
information.
 
 Note that if a valid toolchain is also specified through
 cmake-options it will override th

[sdk/kdesrc-build] doc: doc: Fix mistake in variable name

2024-01-18 Thread Andrew Shark
Git commit 4d990277cfe27c0fdcab5e422a37654b01aa2740 by Andrew Shark.
Committed on 19/01/2024 at 02:34.
Pushed by ashark into branch 'master'.

doc: Fix mistake in variable name

M  +1-1doc/conf-options-table.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/4d990277cfe27c0fdcab5e422a37654b01aa2740

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index be58e68b..e19ac4d0 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -317,7 +317,7 @@ You cannot override this setting in a module option. The 
default value is
 the $PATH that is set when the script starts. This environment
 variable should include the colon-separated paths of your development
 toolchain. The paths ${install-dir}/bin 
and
-${install-dir}/bin are automatically 
added. You
+${qt-install-dir}/bin are automatically 
added. You
 may use the tilde (~) for any paths you add using this option.
 
 


[sdk/kdesrc-build] /: Rename qtdir option to qt-install-dir

2024-01-17 Thread Andrew Shark
Git commit 2a2f6fd7a956a3657908b91dfe074c544e954e74 by Andrew Shark.
Committed on 17/01/2024 at 17:57.
Pushed by ashark into branch 'master'.

Rename qtdir option to qt-install-dir

Also remove usage of ancient environment variable QTDIR, which is not used 
today.

CC: #142

M  +1-1completions/zsh/_kdesrc-build
M  +2-2data/build-include/qt5.ksb
M  +2-2data/build-include/qt6.ksb
M  +1-1data/kde-env-master.sh.in
M  +1-1data/kdesrc-buildrc.in
M  +6-7doc/appendix-profile.docbook
M  +1-6doc/basic-features.docbook
M  +7-7doc/conf-options-table.docbook
M  +2-2doc/features.docbook
M  +0-1doc/index.docbook
M  +1-1doc/kdesrc-buildrc.docbook
M  +5-2modules/ksb/Application.pm
M  +1-1modules/ksb/BuildContext.pm
M  +8-10   modules/ksb/BuildSystem/KDECMake.pm
M  +3-3modules/ksb/BuildSystem/Qt4.pm
M  +5-5modules/ksb/BuildSystem/Qt5.pm
M  +1-1modules/ksb/BuildSystem/Qt6.pm
M  +3-3modules/ksb/Module.pm
M  +1-1t/data/bug-395627/kdesrc-buildrc
M  +4-4t/unit/build-environment/platform-env-prepend.t
M  +1-1vim/syntax/kdesrc-buildrc.vim

https://invent.kde.org/sdk/kdesrc-build/-/commit/2a2f6fd7a956a3657908b91dfe074c544e954e74

diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build
index 3741e76f..8260529f 100644
--- a/completions/zsh/_kdesrc-build
+++ b/completions/zsh/_kdesrc-build
@@ -64,7 +64,7 @@ _arguments \
   "--print-modules" \
   "(--purge-old-logs 
--no-purge-old-logs)"{--purge-old-logs,--no-purge-old-logs} \
   "--qmake-options"":argument:" \
-  "--qtdir"":argument:" \
+  "--qt-install-dir"":argument:" \
   "--query"":argument:" \
   "--rc-file"":::_files" \
   "--rebuild-failures" \
diff --git a/data/build-include/qt5.ksb b/data/build-include/qt5.ksb
index 7dee09f2..d64b3da6 100644
--- a/data/build-include/qt5.ksb
+++ b/data/build-include/qt5.ksb
@@ -14,8 +14,8 @@ module-set qt5-set
 # you cannot get it to compile by uncommenting the next line.
 # ignore-modules qtwebengine
 
-# install path. This *MUST* match your qtdir setting in kdesrc-buildrc!
-install-dir ${qtdir}
+# install path. This *MUST* match your qt-install-dir setting in 
kdesrc-buildrc!
+install-dir ${qt-install-dir}
 
 configure-flags -release -reduce-relocations -force-debug-info 
-separate-debug-info -skip qtdocgallery
 
diff --git a/data/build-include/qt6.ksb b/data/build-include/qt6.ksb
index 4259b401..26c7384d 100644
--- a/data/build-include/qt6.ksb
+++ b/data/build-include/qt6.ksb
@@ -9,8 +9,8 @@ module-set qt6-set
 repository qt6-copy # as defined in kdesrc-buildrc-kf6-sample
 branch 6.6
 
-# install path. This *MUST* match your qtdir setting in kdesrc-buildrc!
-install-dir ${qtdir}
+# install path. This *MUST* match your qt-install-dir setting in 
kdesrc-buildrc!
+install-dir ${qt-install-dir}
 
 # These have been manually placed in dependency order based on the
 # .gitmodules file in https://code.qt.io/cgit/qt/qt5.git/tree/.gitmodules
diff --git a/data/kde-env-master.sh.in b/data/kde-env-master.sh.in
index df107888..70e8452e 100644
--- a/data/kde-env-master.sh.in
+++ b/data/kde-env-master.sh.in
@@ -32,7 +32,7 @@ kde_prefix="<% install-dir %>"  # E.g. "$HOME/kf5"
 
 # Where Qt is installed to. If using the system Qt, leave blank and this script
 # will try to auto-detect.
-qt_prefix="<% qtdir %>"# E.g. "$HOME/qt5" or "/usr" on many systems.
+qt_prefix="<% qt-install-dir %>"# E.g. "$HOME/qt5" or "/usr" on many 
systems.
 else   # kdesrc-build: 
filter
 kde_prefix="$HOME/kf5" # kdesrc-build: 
filter
 qt_prefix="$HOME/qt5"  # kdesrc-build: 
filter
diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in
index 62de3d1a..771d5aa9 100644
--- a/data/kdesrc-buildrc.in
+++ b/data/kdesrc-buildrc.in
@@ -21,7 +21,7 @@ global
 # relative to source-dir by default
 build-dir %{build-dir}
 
-# qtdir  ~/kde/qt # Where to install Qt6 if kdesrc-build supplies it
+# qt-install-dir ~/kde/qt # Where to install Qt6 if kdesrc-build supplies 
it
 
 cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo
 
diff --git a/doc/appendix-profile.docbook b/doc/appendix-profile.docbook
index a9293a92..517465fc 100644
--- a/doc/appendix-profile.docbook
+++ b/doc/appendix-profile.docbook
@@ -28,25 +28,24 @@ and add to the end of the file:
 If you are building the qt module (you are by default), add instead:
 
 
-QTDIR=(path to qtdir)   # Such as ~/kdesrc/build/qt by default.
-PATH=${install-dir}/bin:$QTDIR/bin:$PATH
-MANPATH=$QTDIR/

[sdk/kdesrc-build] doc: doc: Add self links to the listed entries

2024-01-16 Thread Andrew Shark
Git commit 4e0a8ad0db52e3f519214c740aa21ea7f0efa5c8 by Andrew Shark.
Committed on 16/01/2024 at 20:55.
Pushed by ashark into branch 'master'.

doc: Add self links to the listed entries

Currently, the anchors are not rendered, see 
https://bugs.kde.org/show_bug.cgi?id=479910

To workaround, we will use links to the items itself, so users could easily 
copy and share the link to the option.

M  +60   -60   doc/conf-options-table.docbook
M  +53   -53   doc/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/4e0a8ad0db52e3f519214c740aa21ea7f0efa5c8

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index da8b7da1..7ee10c94 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -31,7 +31,7 @@ option.
 
 
 
-async
+async
 
 
 TypeBoolean
@@ -44,7 +44,7 @@ all of the source code updates before starting the build 
process.
 
 
 
-colorful-output
+colorful-output
 
 TypeBoolean
 Default valueTrue
@@ -56,7 +56,7 @@ color codes to anything but a terminal (such as xterm, 
, or the normal
 
 
 
-disable-agent-check
+disable-agent-check
 
 
 TypeBoolean
@@ -71,7 +71,7 @@ for every module.
 
 
 
-git-desired-protocol
+git-desired-protocol
 
 
 TypeString
@@ -105,7 +105,7 @@ protocol is most efficient.
 
 
 
-install-environment-driver
+install-environment-driver
 
 
 TypeBoolean
@@ -141,7 +141,7 @@ command-line option.
 
 
 
-install-session-driver
+install-session-driver
 
 
 TypeBoolean
@@ -171,7 +171,7 @@ command-line option.
 
 
 
-niceness
+niceness
 
 
 TypeInteger
@@ -184,7 +184,7 @@ number, the "nicer" the program is.
 
 
 
-num-cores
+num-cores
 
 
 TypeInteger
@@ -202,7 +202,7 @@ option's usage.
 
 
 
-num-cores-low-mem
+num-cores-low-mem
 
 
 TypeInteger
@@ -229,7 +229,7 @@ set to 2.
 
 
 
-persistent-data-file
+persistent-data-file
 
 
 TypeString
@@ -249,7 +249,7 @@ so that different configurations do not end up with 
conflicting persistent data.
 
 
 
-ssh-identity-file
+ssh-identity-file
 
 
 TypeString
@@ -263,7 +263,7 @@ linkend="ssh-agent-reminder"/>.
 
 
 
-use-idle-io-priority
+use-idle-io-priority
 
 
 TypeBoolean
@@ -277,7 +277,7 @@ running times for .
 
 
 
-use-inactive-modules
+use-inactive-modules
 
 
 TypeBoolean
@@ -307,7 +307,7 @@ running times for .
 
 
 
-binpath
+binpath
 
 
 TypeString
@@ -323,7 +323,7 @@ may use the tilde (~) for any paths you add using this 
option.
 
 
 
-branch
+branch
 
 
 TypeString
@@ -337,7 +337,7 @@ option for case-by-case exceptions.
 
 
 
-branch-group
+branch-group
 
 
 TypeString
@@ -373,7 +373,7 @@ linkend="kde-projects-module-sets"/>.
 
 
 
-build-dir
+build-dir
 
 
 TypeString
@@ -408,7 +408,7 @@ 
class="directory">/home/user-name/builddir.
 
 
 
-build-when-unchanged
+build-when-unchanged
 
 
 TypeBoolean
@@ -435,7 +435,7 @@ change at all.
 
 
 
-cmake-generator
+cmake-generator
 
 
 TypeString
@@ -454,7 +454,7 @@ value for cmake-generator.
 
 
 
-cmake-toolchain
+cmake-toolchain
 
 
 TypeString
@@ -474,7 +474,7 @@ value for cmake-toolchain.
 
 
 
-cmake-options
+cmake-options
 
 
 TypeString
@@ -516,7 +516,7 @@ are set for you automatically)
 
 
 
-compile-commands-export
+compile-commands-export
 
 
 TypeBoolean
@@ -528,7 +528,7 @@ are set for you automatically)
 
 
 
-compile-commands-linking
+compile-commands-linking
 
 
 TypeBoolean
@@ -541,7 +541,7 @@ inside the build directory to the matching source directory.
 
 
 
-configure-flags
+configure-flags
 
 
 TypeString
@@ -560,7 +560,7 @@ only works for qt.
 
 
 
-custom-build-command
+custom-build-command
 
 
 TypeString
@@ -580,7 +580,7 @@ only works for qt.
 
 
 
-cxxflags
+cxxflags
 
 
 TypeString
@@ -603,7 +603,7 @@ linkend="conf-cmake-options">cmake-options option.
 
 
 
-dest-dir
+dest-dir
 
 
 TypeString
@@ -619,7 +619,7 @@ or directory separators in the name as this will interfere 
with any
 
 
 
-do-not-compile
+do-not-compile
 
 
 TypeString
@@ -640,7 +640,7 @@ options.
 
 
 
-git-user
+git-user
 
 
 TypeString
@@ -669,7 +669,7 @@ email address f...@abc.xyz would use:
 
 
 
-http-proxy
+http-proxy
 
 
 TypeString
@@ -687,7 +687,7 @@ on also use that proxy server, if possible, by setting the
 
 
 
-directory-layout
+directory-layout
 
 
 TypeString
@@ -720,7 +720,7 @@ due to changes in the project metadata.
 
 
 
-generate-vscode-project-config
+generate-vscode-project-config
 
 
 
@@ -747,7 +747,7 @@ for working on most KDE projects.
 
 
 
-include-dependencies
+include-dependencies
 
 
 TypeBoolean
@@ -769,7 +769,7 @@ common operating systems.
 
 
 
-install-after-build
+install-after-build
 
 
 TypeString
@@ -783,7 +783,7 @@ flag.
 
 
 
-install-dir
+install-dir
 
 
 TypeString
@@ -804,7 +804,7 @@ in the path to have them expanded to the module's 
name.
 
 
 
-libname
+libname
 
 
 TypeString
@@ -818,7 +818,7 @@ but if the guess is wrong then it can be changed with this 
setting.
 
 
 
-libpath
+libpath
 
 
 TypeString
@@ -833,7 +

[frameworks-kdoctools] [Bug 467128] kde-no-chunk.xsl and kde-web.xsl do not work

2024-01-16 Thread Andrew Shark
https://bugs.kde.org/show_bug.cgi?id=467128

Andrew Shark  changed:

   What|Removed |Added

 CC||ash...@linuxcomp.ru

-- 
You are receiving this mail because:
You are the assignee for the bug.

[frameworks-kdoctools] [Bug 479910] New: There should be a way to easily get anchor (hyperlink) to the section

2024-01-16 Thread Andrew Shark
https://bugs.kde.org/show_bug.cgi?id=479910

Bug ID: 479910
   Summary: There should be a way to easily get anchor (hyperlink)
to the section
Classification: Frameworks and Libraries
   Product: frameworks-kdoctools
   Version: unspecified
  Platform: Other
OS: Linux
Status: REPORTED
  Severity: normal
  Priority: NOR
 Component: general
  Assignee: kde-doc-english@kde.org
  Reporter: ash...@linuxcomp.ru
CC: kdelibs-b...@kde.org
  Target Milestone: ---

When browsing documentation, it is very inconvenient to actually extract the
anchor to the specified section of documentation, even when you know it is
there.

The every other documentation representation system do allow you to get such an
anchor.

For example, visit this page: https://mesonbuild.com
You see, when you hover over the section title, the "chain" icon is shown to
the right of it, so you can actually copy and share that link.

We should do similar thing when representing documentation generated from the
docbook files.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[sdk/kdesrc-build] /: Add support for --no-build-when-unchanged

2024-01-16 Thread Andrew Shark
Git commit fe8dbd69e35a9367181fe5d27c10d25786f192a4 by Andrew Shark.
Committed on 16/01/2024 at 12:49.
Pushed by ashark into branch 'master'.

Add support for --no-build-when-unchanged

This option was mistakenly not marked as negatable.
Adding the negatable form allows to override the `true` value set to this 
option from config.

Fixes: #351

M  +1-1completions/zsh/_kdesrc-build
M  +2-4doc/conf-options-table.docbook
M  +1-1modules/ksb/Cmdline.pm

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

diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build
index 17f2f153..3741e76f 100644
--- a/completions/zsh/_kdesrc-build
+++ b/completions/zsh/_kdesrc-build
@@ -20,7 +20,7 @@ _arguments \
   "--branch"":argument:" \
   "--build-dir"":argument:" \
   "--build-system-only" \
-  "(--build-when-unchanged 
--force-build)"{--build-when-unchanged,--force-build}"[Disable skipping the 
build process.]" \
+  "(--build-when-unchanged --no-build-when-unchanged --force-build 
--no-force-build)"{--build-when-unchanged,--no-build-when-unchanged,--force-build,--no-force-build}"[Disable
 skipping the build process.]" \
   "--cmake-generator"":argument:" \
   "--cmake-options"":argument:" \
   "--cmake-toolchain"":argument:" \
diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index 86e35dbb..da8b7da1 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -417,13 +417,11 @@ 
class="directory">/home/user-name/builddir.
 Control whether  always
 tries to build a module that has not had any source code updates.
 
-By setting build-when-unchanged to
-true,  always attempts the build phase
+If set to true,  always attempts 
the build phase
 for a module, even if the module did not have any source code updates.
 With this value it will more likely lead to a correct build.
 
-By setting build-when-unchanged to
-false,  will only attempt to run the
+If set to false,  will only attempt 
to run the
 build phase for a module if the module has a source code update, or in other
 situations where it is likely that a rebuild is actually required. This can 
save
 time, especially if you run  daily, or more frequently.
diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm
index 2422cd83..8c7a6dba 100644
--- a/modules/ksb/Cmdline.pm
+++ b/modules/ksb/Cmdline.pm
@@ -449,7 +449,7 @@ sub _supportedOptions
 );
 
 my @context_options_with_extra_specifier = (
-'build-when-unchanged|force-build',
+'build-when-unchanged|force-build!',
 'colorful-output|color!',
 'ignore-modules|!=s{,}',
 'niceness|nice:10',


[sdk/kdesrc-build] /: Add --show-options-specifiers option

2024-01-15 Thread Andrew Shark
Git commit 35e68fb5b925ef438cf441ead6dce3285f0fdbc8 by Andrew Shark.
Committed on 15/01/2024 at 18:23.
Pushed by ashark into branch 'master'.

Add --show-options-specifiers option

M  +8-8doc/supported-cmdline-params.docbook
M  +9-10   modules/ksb/Cmdline.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/35e68fb5b925ef438cf441ead6dce3285f0fdbc8

diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index 71993bdc..219c9099 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -704,14 +704,6 @@ Display the program version.
 
 
 
-
---author
-
-Display contact information for the
-author.
-
-
-
 
 --help (or -h)
 
@@ -728,6 +720,14 @@ prove useful in bug reports or when asking for help in 
forums or mailing lists.
 
 
 
+
+--show-options-specifiers
+
+Print the specifier lines (in the format that GetOpts::Long accepts) for all 
command line options supported by the script.
+This may be used by developers, for example, for generating zsh autocompletion 
functions.
+
+
+
 
 
 
diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm
index b11dc63a..2422cd83 100644
--- a/modules/ksb/Cmdline.pm
+++ b/modules/ksb/Cmdline.pm
@@ -142,7 +142,7 @@ sub readCommandLineOptionsAndSelectors (@options)
 %foundOptions = (
 'show-info' => sub { _showInfoAndExit();},
 version => sub { _showVersionAndExit(); },
-author  => sub { _showAuthorAndExit();  },
+'show-options-specifiers' => sub { _showOptionsSpecifiersAndExit(); },
 help=> sub { _showHelpAndExit();},
 
 # Intended as a short option, -d would imply --include-dependencies and
@@ -399,17 +399,16 @@ sub _showInfoAndExit
 exit;
 }
 
-sub _showAuthorAndExit
+sub _showOptionsSpecifiersAndExit
 {
-my $version = "kdesrc-build " . scriptVersion();
-say <<~DONE;
-$version was written (mostly) by:
-  Michael Pyne 
+my @supportedOptions = _supportedOptions();
 
-Many people have contributed code, bugfixes, and documentation.
+# The initial setup options are handled outside of Cmdline (in the 
starting script).
+my @initial_options = ("initial-setup", "install-distro-packages", 
"generate-config", "update-shellrc");
 
-Please report bugs using the KDE Bugzilla, at https://bugs.kde.org/
-DONE
+foreach my $option (@supportedOptions, @initial_options) {
+print "$option\n";
+}
 
 exit;
 }
@@ -420,7 +419,6 @@ sub _supportedOptions
 # See https://perldoc.perl.org/5.005/Getopt::Long for options 
specification format
 
 my @non_context_options = (
-'author',
 'build-only',
 'dependency-tree',
 'dependency-tree-fullpath',
@@ -441,6 +439,7 @@ sub _supportedOptions
 'resume-from|from|f=s',
 'set-module-option-value=s',
 'show-info',
+'show-options-specifiers',
 'src-only|s',
 'start-program|run=s{,}',
 'stop-after|to=s',


[sdk/kdesrc-build] /: Eliminate distinction between `prefix` and `install-dir`

2024-01-13 Thread Andrew Shark
Git commit 9b8ccbfe26bc751f42df49b2dc15f4a1ea886480 by Andrew Shark.
Committed on 14/01/2024 at 02:38.
Pushed by ashark into branch 'master'.

Eliminate distinction between `prefix` and `install-dir`

We will not use `--prefix` cli option or `prefix` config option anymore, 
because it means same thing what `install-dir` was meant for.

- For those who used '$MODULE' or '${MODULE}' in the `prefix` config option, we 
now will make that substitution in `install-dir` config option.
- Add a warning message if the prefix config option still found in user config

Closes #141

M  +1-1data/build-include/qt5.ksb
M  +1-1data/build-include/qt6.ksb
M  +7-17   doc/conf-options-table.docbook
M  +0-18   doc/man-kdesrc-build.1.docbook
M  +3-4doc/supported-cmdline-params.docbook
M  +3-0modules/ksb/Application.pm
M  +0-1modules/ksb/BuildContext.pm
M  +4-4modules/ksb/BuildSystem/KDECMake.pm
M  +6-6modules/ksb/BuildSystem/Qt5.pm
M  +3-5modules/ksb/Cmdline.pm
M  +3-9modules/ksb/Module.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/9b8ccbfe26bc751f42df49b2dc15f4a1ea886480

diff --git a/data/build-include/qt5.ksb b/data/build-include/qt5.ksb
index f90f241d..7dee09f2 100644
--- a/data/build-include/qt5.ksb
+++ b/data/build-include/qt5.ksb
@@ -15,7 +15,7 @@ module-set qt5-set
 # ignore-modules qtwebengine
 
 # install path. This *MUST* match your qtdir setting in kdesrc-buildrc!
-prefix ${qtdir}
+install-dir ${qtdir}
 
 configure-flags -release -reduce-relocations -force-debug-info 
-separate-debug-info -skip qtdocgallery
 
diff --git a/data/build-include/qt6.ksb b/data/build-include/qt6.ksb
index 35cedc94..4259b401 100644
--- a/data/build-include/qt6.ksb
+++ b/data/build-include/qt6.ksb
@@ -10,7 +10,7 @@ module-set qt6-set
 branch 6.6
 
 # install path. This *MUST* match your qtdir setting in kdesrc-buildrc!
-prefix ${qtdir}
+install-dir ${qtdir}
 
 # These have been manually placed in dependency order based on the
 # .gitmodules file in https://code.qt.io/cgit/qt/qt5.git/tree/.gitmodules
diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index e74858b1..86e35dbb 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -791,11 +791,17 @@ flag.
 TypeString
 Default value~/kde/usr
 
-This option sets the directory that  will be installed to after it
+This option controls where to install the module after it
 is built. If you
 change this to a directory needing root access, you may want to read about the
 make-install-prefix option as
 well.
+
+Changing this option for specific module allows you to install it to a 
different directory than
+where the  Platform libraries are installed, such as if you were using
+ only to build applications.
+You can use ${MODULE} or $MODULE
+in the path to have them expanded to the module's name.
 
 
 
@@ -1001,22 +1007,6 @@ the auto-detection. In this case you can manually 
specify the correct build type
 
 
 
-
-prefix
-
-
-TypeString
-
-This option controls where to install the module (normally the
-install-dir setting 
is used).
-Using this option allows you to install a module to a different directory than
-where the KDE Platform libraries are installed, such as if you were using
- only to build applications.
-You can use ${MODULE} or $MODULE
-in the path to have them expanded to the module's name.
-
-
-
 
 purge-old-logs
 
diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook
index fd0cb45f..59279ee1 100644
--- a/doc/man-kdesrc-build.1.docbook
+++ b/doc/man-kdesrc-build.1.docbook
@@ -606,24 +606,6 @@ Edit the "~/.bashrc" (or other shell rc file) to add 
 to your $PAT
 
 
 
-
-
---prefix=foo
-
-
-
-
-Overrides the install-dir setting to be
-foo for this run. In addition, implies
---reconfigure. It does not actually
-perform the action you would think it does (overriding the
-prefix option to change where modules are installed),
-although by default modules are installed to the 
install-dir
-setting if prefix is not set.
-
-
-
-
 
 
 --nice=foo
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index ab7923bc..71993bdc 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -526,11 +526,10 @@ 
linkend="cmdline-refresh-build">--refresh-build is used.
 
 
 
-
---prefix /path/to/kde
+
+--install-dir path
 
-This allows you to change the directory that  will be installed to from
-the command line.  This option implies --reconfigure,
 but using --refresh-build
 may still be required.
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 2a99c248..92c63258 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -960,6 +960,9 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, 
$endRE=undef)
 if ($option

[sdk/kdesrc-build] /: Check that all option names read from config are recognised

2024-01-10 Thread Andrew Shark
Git commit f99141cadf12bbb7221ddc88ea6ce3e208b492df by Andrew Shark.
Committed on 10/01/2024 at 10:26.
Pushed by ashark into branch 'master'.

Check that all option names read from config are recognised

For every option name read from the config, we will check if it is in 
`@all_possible_options` array. And if not, raise an exception.

To differentiate between normal config options and non-standard config options 
(options with custom name defined by user), we will prepend non-standard 
options with underscore. So users can still use this convenience feature.

Other changes of this commit:
- Allow substituting references to global options when they have underscore in 
their name.
- Add ability to _use_ custom variable immediately after defining in global 
section
- Fix end word typo in `t/data/kde-projects/kdesrc-buildrc-with-deps`.
- Temporary show a help message for the recently renamed option "kdedir".

M  +19   -1doc/kdesrc-buildrc.docbook
M  +18   -6modules/ksb/Application.pm
M  +2-2t/data/branch-time-based/kdesrc-buildrc
M  +1-1t/data/kde-projects/kdesrc-buildrc-with-deps

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

diff --git a/doc/kdesrc-buildrc.docbook b/doc/kdesrc-buildrc.docbook
index 53396e46..68cd4d7e 100644
--- a/doc/kdesrc-buildrc.docbook
+++ b/doc/kdesrc-buildrc.docbook
@@ -95,7 +95,7 @@ linkend="conf-use-modules">use-modules for more 
information.
 option-value.
 
 One modification that  performs is that a sequence
-${name-of-option} is replaced
+"${name-of-option}" is 
replaced
 with the value of that option from the global configuration. This allows you
 to reference the value of existing options, including options already set by
 .
@@ -104,6 +104,24 @@ to reference the value of existing options, including 
options already set by
 To see an example of this in use, see
 .
 
+You can also introduce your own non-standard global variables for 
referencing them further in the config.
+To do this, your option name should be prepended with underscore symbol. 
Example:
+
+Introducing your own global option for referencing later in 
config
+
+global
+  _ver 6  # ← your custom variable (starting with underscore)
+  _kde ~/kde${_ver}  # ← custom variable can contain another defined variable
+  source-dir ${_kde}/src  # ← note that nested variable (_kde → _ver) is also 
resolved
+end global
+
+options kdepim
+  log-dir /custom/path/logs${_ver} # ← you can use custom variable just like a 
standard
+end options
+
+
+
+
 
 
 
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 26cf9ec2..2a99c248 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -805,18 +805,18 @@ sub _readNextLogicalLine
 
 # Takes an input line, and extracts it into an option name, and simplified
 # value. The value has "false" converted to 0, white space simplified (like in
-# Qt), and tildes (~) in what appear to be path-like entries are converted to
-# the home directory path.
+# Qt), tildes (~) in what appear to be path-like entries are converted to
+# the home directory path, and reference to global option is substituted with 
its value.
 #
 # First parameter is the build context (used for translating option values).
 # Second parameter is the line to split.
 # Return value is (option-name, option-value)
-sub _splitOptionAndValue
+sub _splitOptionAndValue_and_substitute_value
 {
 my $ctx = assert_isa(shift, 'ksb::BuildContext');
 my $input = shift;
 my $fileName = shift->currentFilename();
-my $optionRE = qr/\$\{([a-zA-Z0-9-]+)\}/;
+my $optionRE = qr/\$\{([a-zA-Z0-9-_]+)\}/;  # Example of matched string is 
"${option-name}" or "${_option-name}".
 
 # The option is the first word, followed by the
 # flags on the rest of the line.  The interpretation
@@ -836,7 +836,6 @@ sub _splitOptionAndValue
 $value = 0 if lc($value) eq 'false';
 
 # Replace reference to global option with their value.
-# The regex basically just matches ${option-name}.
 my ($sub_var_name) = ($value =~ $optionRE);
 while ($sub_var_name)
 {
@@ -936,6 +935,8 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, 
$endRE=undef)
 _markModuleSource($module, $fileReader->currentFilename() . ":$.");
 $module->setOption('#entry_num', $moduleID++);
 
+my @all_possible_options = sort keys %{$ctx->{build_options}->{global}};
+
 # Read in each option
 while (($_ = _readNextLogicalLine($fileReader)) && ($_ !~ $endRE))
 {
@@ -949,7 +950,18 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, 
$endRE=undef)
 die make_exception('Config', "Invalid file $current_file");
 }
 
-my ($option, $value) = _splitOptionAndValue($ctx, $_, $fileReader);
+my ($option, $value) = _splitOptionAndValue_and_substitute_value($ctx, 
$_, $fileReader);
+
+

[sdk/kdesrc-build/underscore_names] /: Check that all option names read from config are recognised

2024-01-09 Thread Andrew Shark
Git commit d78948069ac534e936969f25bacdfed5ccffa194 by Andrew Shark.
Committed on 09/01/2024 at 22:08.
Pushed by ashark into branch 'underscore_names'.

Check that all option names read from config are recognised

For every option name read from the config, we will check if it is in 
`@all_possible_options` array. And if not, raise an exception.

To differentiate between normal config options and non-standard config options 
(options with custom name defined by user), we will prepend non-standard 
options with underscore. So users can still use this convenience feature.

Other changes of this commit:
- Allow substituting references to global options when they have underscore in 
their name.
- Add ability to _use_ custom variable immediately after defining in global 
section
- Fix end word typo in `t/data/kde-projects/kdesrc-buildrc-with-deps`.
- Temporary show a help message for the recently renamed option "kdedir".

M  +19   -1doc/kdesrc-buildrc.docbook
M  +18   -6modules/ksb/Application.pm
M  +2-2t/data/branch-time-based/kdesrc-buildrc
M  +1-1t/data/kde-projects/kdesrc-buildrc-with-deps

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

diff --git a/doc/kdesrc-buildrc.docbook b/doc/kdesrc-buildrc.docbook
index 53396e46..68cd4d7e 100644
--- a/doc/kdesrc-buildrc.docbook
+++ b/doc/kdesrc-buildrc.docbook
@@ -95,7 +95,7 @@ linkend="conf-use-modules">use-modules for more 
information.
 option-value.
 
 One modification that  performs is that a sequence
-${name-of-option} is replaced
+"${name-of-option}" is 
replaced
 with the value of that option from the global configuration. This allows you
 to reference the value of existing options, including options already set by
 .
@@ -104,6 +104,24 @@ to reference the value of existing options, including 
options already set by
 To see an example of this in use, see
 .
 
+You can also introduce your own non-standard global variables for 
referencing them further in the config.
+To do this, your option name should be prepended with underscore symbol. 
Example:
+
+Introducing your own global option for referencing later in 
config
+
+global
+  _ver 6  # ← your custom variable (starting with underscore)
+  _kde ~/kde${_ver}  # ← custom variable can contain another defined variable
+  source-dir ${_kde}/src  # ← note that nested variable (_kde → _ver) is also 
resolved
+end global
+
+options kdepim
+  log-dir /custom/path/logs${_ver} # ← you can use custom variable just like a 
standard
+end options
+
+
+
+
 
 
 
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 26cf9ec2..2a99c248 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -805,18 +805,18 @@ sub _readNextLogicalLine
 
 # Takes an input line, and extracts it into an option name, and simplified
 # value. The value has "false" converted to 0, white space simplified (like in
-# Qt), and tildes (~) in what appear to be path-like entries are converted to
-# the home directory path.
+# Qt), tildes (~) in what appear to be path-like entries are converted to
+# the home directory path, and reference to global option is substituted with 
its value.
 #
 # First parameter is the build context (used for translating option values).
 # Second parameter is the line to split.
 # Return value is (option-name, option-value)
-sub _splitOptionAndValue
+sub _splitOptionAndValue_and_substitute_value
 {
 my $ctx = assert_isa(shift, 'ksb::BuildContext');
 my $input = shift;
 my $fileName = shift->currentFilename();
-my $optionRE = qr/\$\{([a-zA-Z0-9-]+)\}/;
+my $optionRE = qr/\$\{([a-zA-Z0-9-_]+)\}/;  # Example of matched string is 
"${option-name}" or "${_option-name}".
 
 # The option is the first word, followed by the
 # flags on the rest of the line.  The interpretation
@@ -836,7 +836,6 @@ sub _splitOptionAndValue
 $value = 0 if lc($value) eq 'false';
 
 # Replace reference to global option with their value.
-# The regex basically just matches ${option-name}.
 my ($sub_var_name) = ($value =~ $optionRE);
 while ($sub_var_name)
 {
@@ -936,6 +935,8 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, 
$endRE=undef)
 _markModuleSource($module, $fileReader->currentFilename() . ":$.");
 $module->setOption('#entry_num', $moduleID++);
 
+my @all_possible_options = sort keys %{$ctx->{build_options}->{global}};
+
 # Read in each option
 while (($_ = _readNextLogicalLine($fileReader)) && ($_ !~ $endRE))
 {
@@ -949,7 +950,18 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, 
$endRE=undef)
 die make_exception('Config', "Invalid file $current_file");
 }
 
-my ($option, $value) = _splitOptionAndValue($ctx, $_, $fileReader);
+my ($option, $value) = _splitOptionAndValue_and_substitute_value($ctx, 
$_, $fileReade

[sdk/kdesrc-build] /: Fix default value for "directory-layout" option

2024-01-08 Thread Andrew Shark
Git commit 642bdc2e326f8eae6cbc2a07bfe37fc1044952b9 by Andrew Shark.
Committed on 09/01/2024 at 08:52.
Pushed by ashark into branch 'master'.

Fix default value for "directory-layout" option

It was silently allowed to have unset "directory-layout" option value, that was 
treated as "metadata" value.

Previously, it defaulted to "metadata". Then commit 7fe7c940 (BUG: 461279) 
changed the default value in documentation to "flat", but not in the code.

This commit treats any incorrect value (not one of "flat", "invent", 
"metadata"), including empty string, as a "flat" value with warning.

Add the forgotten default BuildContext value, and add it in FirstRun.

M  +1-1data/kdesrc-buildrc.in
M  +2-1doc/conf-options-table.docbook
M  +1-0modules/ksb/BuildContext.pm
M  +2-0modules/ksb/FirstRun.pm
M  +11   -13   modules/ksb/Module.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/642bdc2e326f8eae6cbc2a07bfe37fc1044952b9

diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in
index 72eef3af..62de3d1a 100644
--- a/data/kdesrc-buildrc.in
+++ b/data/kdesrc-buildrc.in
@@ -50,7 +50,7 @@ global
 
 # Use a flat folder layout under ~/kde/src and ~/kde/build
 # rather than nested directories
-directory-layout flat
+directory-layout %{directory-layout}
 
 # Use Ninja as cmake generator instead of gmake
 cmake-generator Kate - Ninja
diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
index 8c1a32e9..e74858b1 100644
--- a/doc/conf-options-table.docbook
+++ b/doc/conf-options-table.docbook
@@ -695,10 +695,11 @@ on also use that proxy server, if possible, by setting the
 TypeString
 Valid valuesflat,
 invent, metadata
+Default valueflat
 
 This option is used to configure the layout which  should 
use when
 creating source and build directories.
-The flat layout is the default value, and will 
group all modules
+The flat layout will group all modules
 directly underneath the top level source and build directories. For example,
 source/extragear/network/telepathy/ktp-text-ui in the 
metadata
 layout would be source/ktp-text-ui using the 
flat layout
diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm
index ce78ac60..808a89cf 100644
--- a/modules/ksb/BuildContext.pm
+++ b/modules/ksb/BuildContext.pm
@@ -154,6 +154,7 @@ our %defaultGlobalOptions = (
 "configure-flags"  => "",
 "custom-build-command" => '',
 "cxxflags" => "-pipe",
+"directory-layout" => "flat",
 "dest-dir" => '${MODULE}', # single quotes used on purpose!
 "do-not-compile"   => "",
 "http-proxy"   => '', # Proxy server to use for HTTP.
diff --git a/modules/ksb/FirstRun.pm b/modules/ksb/FirstRun.pm
index ee668e7f..28bb9833 100644
--- a/modules/ksb/FirstRun.pm
+++ b/modules/ksb/FirstRun.pm
@@ -312,6 +312,7 @@ DONE
 my $fill_placeholder = sub {
 my $option_name = shift;
 my $mode = shift;
+$mode //= "";
 
 my $value = $gl->{$option_name};
 if ($mode eq "bool_to_str") {
@@ -331,6 +332,7 @@ DONE
 $fill_placeholder->("install-session-driver", "bool_to_str");
 $fill_placeholder->("install-environment-driver", "bool_to_str");
 $fill_placeholder->("stop-on-failure", "bool_to_str");
+$fill_placeholder->("directory-layout");
 $fill_placeholder->("compile-commands-linking", "bool_to_str");
 $fill_placeholder->("compile-commands-export", "bool_to_str");
 $fill_placeholder->("generate-vscode-project-config", "bool_to_str");
diff --git a/modules/ksb/Module.pm b/modules/ksb/Module.pm
index 0dd11afc..e1665e8c 100644
--- a/modules/ksb/Module.pm
+++ b/modules/ksb/Module.pm
@@ -999,21 +999,19 @@ sub destDir ($self)
 my $layout = $self->getOption('directory-layout');
 if ($layout eq 'flat') {
 $basePath = $self->name();
+} elsif ($layout eq 'invent') { # invent layout is the modern layout for 
proper KDE projects
+$basePath = $self->getOption('#kde-repo-path', 'module');
+$basePath ||= $self->name(); # Default if not provided in repo-metadata
+} elsif ($layout eq 'metadata') {
+$basePath = $self->getOption('#kde-project-path', 'module');
+$basePath ||= $self->name(); # Default if not provided in repo-metadata
 } else {
-# invent layout is the modern layout for proper KDE projects
-if ($layout eq 'invent') {
-$basePath = $self->getOption('#kde-repo-path', 'module');
-} else {
-if ($layout && $layout ne 'invent' &&a

[sdk/kdesrc-build] doc: doc: Remove final paragraph about the selectors

2024-01-08 Thread Andrew Shark
Git commit cb3a389d27de1f1ca8fe1e529435fe73ad35e3d4 by Andrew Shark.
Committed on 08/01/2024 at 22:42.
Pushed by ashark into branch 'master'.

doc: Remove final paragraph about the selectors

The previous commit wrongly moved this paragraph to the specific section, but 
it was intentional to keep it outside the specific sections.

However, this paragraph originates from the very initial lifetime of the 
index.docbook, and is no more accurate. So remove it.

M  +0-5doc/supported-cmdline-params.docbook

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

diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index f27563dd..ab7923bc 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -731,10 +731,5 @@ prove useful in bug reports or when asking for help in 
forums or mailing lists.
 
 
 
-
-Any other command-line options are assumed to be modules to update and build.
-Please, do not mix building with installing.
-
-
 
 


[sdk/kdesrc-build] doc: doc: Group cli parameters to logical sections

2024-01-07 Thread Andrew Shark
Git commit 5d7e870dd7658498d427451aed386a60063e0e80 by Andrew Shark.
Committed on 07/01/2024 at 10:09.
Pushed by ashark into branch 'master'.

doc: Group cli parameters to logical sections

- Indicate mandatory parameters of options.
- Add missing (undocumented) alternative option names
- Change semantic markup "parameter" -> "option" to differentiate with changing 
part ("replaceable")
- Fix some grammar

The https://l10n.kde.org/docs/doc-primer/actions-and-commands.html does not 
describe (at the moment of writing) the "parameter" tag for some reason.

M  +495  -479  doc/supported-cmdline-params.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/5d7e870dd7658498d427451aed386a60063e0e80

diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index e0258d42..3114de5f 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -1,227 +1,254 @@
 
 Supported command-line parameters
 
-
-The script accepts the following command-line options:
-
-
+
+Generic
 
 
-
---async
-
-Enables the asynchronous mode, which can
-perform the source code updates and module builds at the same time.  This is
-the default, this option only needs specified if you have disabled it in the
-configuration.
-
-
-
-
---help (or -h)
+
+--pretend (or --dry-run or 
-p)
 
-Only display simple help on this script.
-
-
+ will run through the update and build process, but instead of
+performing any actions to update or build, will instead output what the
+script would have done (e.g. what commands to run, general steps being taken,
+etc.).
 
-
---version (or -v)
-
-Display the program version.
-
-
+Simple read-only commands (such as reading file information) may
+still be run to make the output more relevant (such as correctly simulating
+whether source code would be checked out or updated).
+
 
-
---show-info
-
-Displays information about  and the operating system, that may
-prove useful in bug reports or when asking for help in forums or mailing lists.
-
-Available since version 18.11.
+This option requires that some needed metadata is available,
+which is normally automatically downloaded, but downloads are disabled in
+pretend mode. If you've never run  (and therefore, don't have
+this metadata), you should run kdesrc-build
+--metadata-only to download the required metadata
+first.
+
 
 
 
-
---initial-setup
+
+--include-dependencies (or -d), 
--no-include-dependencies (or -D)
 
-Has  perform the one-time initial setup necessary to prepare
-the system for  to operate, and for the newly-installed 
-software to run.
-
-This includes:
-
-Installing known dependencies (on supported  
distributions)
-Adding required environment variables to 
~/.bashrc
-Setting up a configuration 
file
-
-This option is exactly equivalent to using
---install-distro-packages
---generate-config
---update-shellrc at the same 
time.
-
-
-
+This option causes  to automatically include other  and 
+modules in the build, if required for the modules you have requested to build
+on the command line or in your
+configuration file.
 
-
---install-distro-packages
-
-Installs distro packages (on supported  distributions) necessary to 
prepare the system for  to operate, and for the newly-installed 

-software to run.
-
-See also --initial-setup
+The modules that are added are as recorded within the  source code
+management system. See .
+
+The corresponding configuration file option is
+include-dependencies.
+
+This option is enabled by default.
 
 
 
-
---generate-config
+
+--ignore-modules (or -!) 
module [module ...]
 
-Generate the  configuration file.
-
-See also --initial-setup
-
+Do not include the modules passed on the rest of the command line in the
+update/build process (this is useful if you want to build most of the modules
+in your configuration file and just skip
+a few).
+
 
 
-
---update-shellrc
+
+--run (or --start-program) 
program [parameters ...]
 
-Edit the "~/.bashrc" (or other shell rc file) to add  to your 
$PATH variable and enable autocompletion.
+This option interprets the next item on the command line as a program to run,
+and  will then finish reading the configuration file, update the
+environment as normal, and then execute the given program.
+
+This will not work to start a shell with the  environment
+in most cases however, since interactive shells typically reset at least part
+of the environment variables (such as PATH and
+${install-dir}) in the startup sequence.
 
-See also --initial-setup
+
+If you want to see the environment used by , you
+can run the printenv command:
+
+$ kdesrc-build --run 
printenv
+KDE_SESSION_VERSION=4
+SDL_AUDIODRIVER=alsa
+LANGUAGE=
+XCURSOR_THEME=Oxygen_Blue
+LESS=-R -M --shift 5
+QMAIL_CONTROLDIR=/var/qmail/control
+... etc.
+
+
 
 
 
-
---author
+
+--revision id
 
-Display contact information for the
-author.
-
-
+This option causes  to checkout a specific numbe

[sdk/kdesrc-build] doc: doc: supported-cmdline-params - separate docbook

2024-01-05 Thread Andrew Shark
Git commit d3ebb4f33fd0db60abf28d4cdb41058cfb3284cd by Andrew Shark.
Committed on 05/01/2024 at 20:00.
Pushed by ashark into branch 'master'.

doc: supported-cmdline-params - separate docbook

M  +1-724  doc/cmdline.docbook
M  +1-0doc/index.docbook
C  +0-113  doc/supported-cmdline-params.docbook [from: doc/cmdline.docbook 
- 086% similarity]

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

diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook
index ecec619f..4273c346 100644
--- a/doc/cmdline.docbook
+++ b/doc/cmdline.docbook
@@ -109,729 +109,6 @@ linkend="conf-set-env">set-env option.
 
 
 
-
-Supported command-line parameters
-
-
-The script accepts the following command-line options:
-
-
-
-
-
---async
-
-Enables the asynchronous mode, which can
-perform the source code updates and module builds at the same time.  This is
-the default, this option only needs specified if you have disabled it in the
-configuration.
-
-
-
-
---help (or -h)
-
-Only display simple help on this script.
-
-
-
-
---version (or -v)
-
-Display the program version.
-
-
-
-
---show-info
-
-Displays information about  and the operating system, that may
-prove useful in bug reports or when asking for help in forums or mailing lists.
-
-Available since version 18.11.
-
-
-
-
---initial-setup
-
-Has  perform the one-time initial setup necessary to prepare
-the system for  to operate, and for the newly-installed 
-software to run.
-
-This includes:
-
-Installing known dependencies (on supported  
distributions)
-Adding required environment variables to 
~/.bashrc
-Setting up a configuration 
file
-
-This option is exactly equivalent to using
---install-distro-packages
---generate-config
---update-shellrc at the same 
time.
-
-
-
-
-
---install-distro-packages
-
-Installs distro packages (on supported  distributions) necessary to 
prepare the system for  to operate, and for the newly-installed 

-software to run.
-
-See also --initial-setup
-
-
-
-
---generate-config
-
-Generate the  configuration file.
-
-See also --initial-setup
-
-
-
-
---update-shellrc
-
-Edit the "~/.bashrc" (or other shell rc file) to add  to your 
$PATH variable and enable autocompletion.
-
-See also --initial-setup
-
-
-
-
---author
-
-Display contact information for the
-author.
-
-
-
-
---color
-
-Enable colorful output. (This is the default for interactive terminals).
-
-
-
-
---generate-vscode-project-config
-
-Generate a .vscode directory with configurations for building and debugging
-in Visual Studio Code.
-
-
-
-
---nice=value
-
-This value adjusts the computer CPU priority requested by , and
-should be in the range of 0-20. 0 is highest priority (because it is the
-least nice), 20 is lowest priority.  defaults
-to 10.
-
-
-
-
---no-async
-
-Disables the asynchronous mode of updating.
-Instead the update will be performed in its entirety before the build starts.
-This option will slow down the overall process, but if you encounter IPC errors
-while running  try using this option, and submitting a
-https://bugs.kde.org/;>bug report.
-
-
-
-
---no-color
-
-Disable colorful output.
-
-
-
-
---pretend (or -p)
-
- will run through the update and build process, but instead of
-performing any actions to update or build, will instead output what the
-script would have done (e.g. what commands to run, general steps being taken,
-etc.).
-
-Simple read-only commands (such as reading file information) may
-still be run to make the output more relevant (such as correctly simulating
-whether source code would be checked out or updated).
-
-
-This option requires that some needed metadata is available,
-which is normally automatically downloaded, but downloads are disabled in
-pretend mode. If you've never run  (and therefore, don't have
-this metadata), you should run kdesrc-build
---metadata-only to download the required metadata
-first.
-
-
-
-
-
---quiet (or -q)
-
-Do not be as noisy with the output. With this switch only the basics are
-output.
-
-
-
-
---really-quiet
-
-Only output warnings and errors.
-
-
-
-
---verbose
-
-Be very descriptive about what is going on, and what  is doing.
-
-
-
-
---src-only (or -s)
-
-Only perform the source update.
-
-
-
-
---build-only
-
-Only perform the build process.
-
-
-
-
---install-only
-
-If this is the only command-line option, it tries to install all of the modules
-contained in log/latest/build-status. If command-line
-options are specified after --install-only, they are all
-assumed to be modules to install (even if they did not successfully build on
-the last run).
-
-
-
-
---metadata-only
-
-Only perform the metadata download process.  normally handles 
this
-automatically, but you might manually use this to allow the --pretend command line option to 
work.
-
-
-
-
---rebuild-failures
-
-Use this option to build only those modules which failed to build on a previous
- run. This is useful if a significant number o

[sdk/kdesrc-build] doc: doc: kdesrc-build-logging - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 93412946d1e2df4374d280350631da819e5f0caf by Andrew Shark.
Committed on 05/01/2024 at 20:00.
Pushed by ashark into branch 'master'.

doc: kdesrc-build-logging - separate docbook

M  +1-78   doc/features.docbook
M  +1-0doc/index.docbook
A  +78   -0doc/kdesrc-build-logging.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/93412946d1e2df4374d280350631da819e5f0caf

diff --git a/doc/features.docbook b/doc/features.docbook
index 2a911dc3..723cb706 100644
--- a/doc/features.docbook
+++ b/doc/features.docbook
@@ -180,83 +180,6 @@ always point to the most recent log entry in the log 
directory.
 
 
 
-
-'s build logging
-
-
-Logging overview
-
-Logging is a  feature whereby the output from every command
-that  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.
-
-
-Logging directory layout
-
-The logs are always stored under the log directory. The destination of
-the log directory is controlled by the log-dir
-option, which defaults to ${source-dir}/log (where
-${source-dir} is the value of the source-dir
-option. The in rest of this section, this value will be referred to as
-${log-dir}).
-
-Under ${log-dir}, is a set of directories, one for every
-time that  was run. Each directory is named with the date, and
-the run number. For instance, the second time that  is run on
-May 26, 2004, it would create a directory called 
2004-05-26-02,
-where the 2004-05-26 is for the date, and the -02 is the run number.
-
-For your convenience,  will also create a link to the
-logs for your latest run, called latest. So the logs for
-the most recent  run should always be under ${log-dir}/latest.
-
-
-Now, each directory for a  run will itself contain a set of
-directories, one for every  module that  tries to build. 
Also,
-a file called build-status will be contained in the 
directory,
-which will allow you to determine which modules built and which failed.
-
-
-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  run would be found in ${log-dir}/latest/KDE/kdelibs,
-and not under ${log-dir}/latest/kdelibs.
-
-
-In each module log directory, you will find a set of files for each
-operation that  performs. If  updates a module,
-you may see filenames such as git-checkout-update.log 
(for a
-module checkout or when updating a module
-that has already been checked out). If the configure
-command was run, then you would expect to see a 
configure.log
-in that directory.
-
-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,
- will create a link from the file containing the error (such as
-build-1.log to a file called 
error.log).
-
-The upshot to all of this is that to see why a module failed to build
-after your last , the file you should look at first is
-${log-dir}/latest/module-name/error.log.
-
-
-If the file error.log is empty (especially 
after
-an installation), then perhaps there was no error. Some of the tools used by
-the  build system will sometimes mistakenly report an error when there was
-none.
-
-Also, some commands will evade 's output redirection and
-bypass the log file in certain circumstances (normally when performing the
-first  checkout), and the error output in that case is not in the log file
-but is instead at the  or terminal where you ran 
.
-
-
-
-
-
+
 
 
diff --git a/doc/index.docbook b/doc/index.docbook
index b7801670..78e55044 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -85,6 +85,7 @@
   
   
   
+  
 ]>
 
 
diff --git a/doc/kdesrc-build-logging.docbook b/doc/kdesrc-build-logging.docbook
new file mode 100644
index ..91f751ac
--- /dev/null
+++ b/doc/kdesrc-build-logging.docbook
@@ -0,0 +1,78 @@
+
+'s build logging
+
+
+Logging overview
+
+Logging is a  feature whereby the output from every command
+that  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.
+
+
+Logging directory layout
+
+The logs are always stored under the log directory. The destination of
+the log directory is controlled by the log-dir
+option, which defaults to ${source-dir}/log (where
+${source-dir} is the value of the source-dir
+option. The in rest of this section, this value will be referred to as
+${log-dir}).
+
+Under ${log-dir}, is a set of directories, one for every
+time that  was run. Each directory is named with the date, and
+the run number. For instance, the second time that  is run on
+May 26, 2004, it wo

[sdk/kdesrc-build] doc: doc: kde-modules-and-selection - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 19c4426fa7fdd6218cabbd2dfab0d0c848994fed by Andrew Shark.
Committed on 05/01/2024 at 20:00.
Pushed by ashark into branch 'master'.

doc: kde-modules-and-selection - separate docbook

M  +1-353  doc/getting-started.docbook
M  +1-0doc/index.docbook
C  +0-238  doc/kde-modules-and-selection.docbook [from: 
doc/getting-started.docbook - 059% similarity]

https://invent.kde.org/sdk/kdesrc-build/-/commit/19c4426fa7fdd6218cabbd2dfab0d0c848994fed

diff --git a/doc/getting-started.docbook b/doc/getting-started.docbook
index 53d0d1b8..98997abf 100644
--- a/doc/getting-started.docbook
+++ b/doc/getting-started.docbook
@@ -216,359 +216,7 @@ linkend="configure-data" /> and in .
 
 
 
-
-Module Organization and selection
-
-
-KDE Software Organization
-
-
- software is split into different components, many of which can be built
-by . Understanding this organization will help you properly
-select the software modules that you want built.
-
-
-
-At the lowest level comes the  library, which is a
-very powerful, cross-platform toolkit library.  is based on
-, and some of the non- libraries required by  are also based on
-.  can build , or use the one already installed on your
-system if it is a recent enough version.
-
-On top of  are required libraries that are necessary for
- software to work. Some of these libraries are not considered part of
- itself due to their generic nature, but are still essential to the 
-Platform. These libraries are collected under a kdesupport
-module grouping but are not considered part of the Frameworks
-libraries.
-
-
-On top of these essential libraries come the https://community.kde.org/Frameworks;> Frameworks, sometimes
-abbreviated as KF5, which are essential libraries for the  Plasma desktop,
- Applications, and other third-party software.
- 
-
-On top of the Frameworks, come several different things:
-
-Third-party applications. These are
-applications that use the  Frameworks or are designed to run under
- Plasma but are not authored by or in association with the 
-project.
-
-Plasma, which is a full workspace 
desktop
-environment. This is what users normally see when they log-in to
-.
-
-The  Application suite. This is a collection of
-useful software included with the Platform and  Desktop, 
grouped into
-individual modules, including utilities like , games like
-KSudoku, and productivity software released 
by 
-such as .
-
-Finally, there is a collection of software (also
-collected in modules) whose development is supported by  resources
-(such as translation, source control, bug tracking, ) but is not
-released by  as part of Plasma or the Application suite. These
-modules are known as Extragear.
-
-
-
-
-
-
-
-Selecting modules to build
-
-Selecting which of the possible modules to build is controlled by
-the configuration file.
-After the global section is a list of modules to build,
-bracketed by module ... end module lines. An example entry for a module is
-shown in .
-
-
-Example module entry in the configuration file
-
-module kdesrc-build-git
-# Options for this module go here, example:
-repository kde:kdesrc-build
-make-options -j4 # Run 4 compiles 
at a time
-end module
-
-
-
-In practice, this module construct is not usually used directly.  
Instead
-most modules are specified via module-sets as described below.
-
-When using only module entries,  builds 
them in the order
-you list, and does not attempt to download any other repositories other than 
what you specify
-directly.
-
-
-
-
-
-Module Sets
-
-The  source code is decomposed into a great number of relatively
-small Git-based repositories. To make it easier to manage the large number of
-repositories involved in any useful -based install,  
supports
-grouping multiple modules and treating the group as a module 
set.
-
-
-
-The basic module set concept
-
-By using a module set, you can quickly declare many Git modules to be
-downloaded and built, as if you'd typed out a separate module declaration for
-each one. The repository option is
-handled specially to setup where each module is downloaded from, and every
-other option contained in the module set is copied to every module generated
-in this fashion.
-
-
-Using module sets
-
-global
-git-repository-base 
kde-git kde:
-end global
-
-module qt
-# Options removed for brevity
-end module
-
-module-set kde-support-libs
-repository 
kde-git
-use-modules 
automoc attica 
akonadi
-end module-set
-
-# Other modules as necessary...
-module kdesupport
-end module
-
-
-
-In  a brief module set is
-shown.  When  encounters this module set, it acts as if, for
-every module given in use-modules, that an individual module
-has been declared, with its repository equal to the
-module-set's repository followed immediately by the given
-module name.
-
-In

[sdk/kdesrc-build] doc: doc: other-features - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 4c8ef70683eb7eaa5890cfa4e7206dc401b42e57 by Andrew Shark.
Committed on 05/01/2024 at 20:00.
Pushed by ashark into branch 'master'.

doc: other-features - separate docbook

M  +2-142  doc/index.docbook
A  +142  -0doc/other-features.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/4c8ef70683eb7eaa5890cfa4e7206dc401b42e57

diff --git a/doc/index.docbook b/doc/index.docbook
index f8b1b1a7..7592879a 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -87,6 +87,7 @@
   
   
   
+  
 ]>
 
 
@@ -184,148 +185,7 @@ do with this tool.
 
 
 
-
-Other  features
-
-
-Changing the amount of output from 
- has several options to control the amount of output the
-script generates. In any case, errors will always be output.
-
-
-The --quiet option (short form is
--q) causes  to be mostly silent. Only important
-messages, warnings, or errors will be shown. When available, build progress
-information is still shown.
-
-The --really-quiet option (no short form)
-causes  to only display important warnings or errors while it is
-running.
-
-The --verbose option (short form is
--v) causes  to be very detailed in its
-output.
-
-The --debug option is for debugging purposes
-only, it causes  to act as if --verbose was
-turned on, causes commands to also output to the terminal, and will display
-debugging information for many functions.
-
-
-
-
-
-Color output
-When being run from  or a different terminal, 
-will normally display with colorized text.
-
-You can disable this by using the --no-color on the
-command line, or by setting the  option in the configuration file to
-false.
-
-
-
-Disabling color output in the configuration file:
-
-global
-  colorful-output false
-end global
-
-
-
-
-
-
-Removing unneeded directories after a build
-Are you short on disk space but still want to run a bleeding-edge
- checkout?   can help reduce your disk usage when building
- from .
-
-Be aware that building  does take a lot of space. There are
-several major space-using pieces when using :
-
-
-The actual source checkout can take up a fair amount of space.
-The default modules take up about 1.6 gigabytes of on-disk space. You can 
reduce
-this amount by making sure that you are only building as many modules as you
-actually want.  will not delete source code from disk even if you
-delete the entry from the configuration 
file, so make sure that you go and delete unused
-source checkouts from the source directory. Note that the source files are
-downloaded from the Internet, you should not delete them
-if you are actually using them, at least until you are done using
-.
-
-Also, if you already have a  installed by your distribution (and
-the odds are good that you do), you probably do not need to install the
-qt module. That will shave about 200 megabytes off of the on-disk source
-size.
-
-
-
- will create a separate build directory to build the source
-code in. Sometimes  will have to copy a source directory to
-create a fake build directory. When this happens, space-saving symlinks are
-used, so this should not be a hassle on disk space. The build directory will
-typically be much larger than the source directory for a module. For example,
-the build directory for kdebase is about 1050 megabytes, whereas kdebase's
-source is only around 550 megabytes.
-
-Luckily, the build directory is not required after a module has
-successfully been built and installed.  can automatically
-remove the build directory after installing a module, see the examples below
-for more information. Note that taking this step will make it impossible
-for  to perform the time-saving incremental builds.
-
-
-
-Finally, there is disk space required for the actual installation of
-, which does not run from the build directory. This typically takes less
-space than the build directory. It is harder to get exact figures however.
-
-
-
-How do you reduce the space requirements of ?  One way is to
-use the proper compiler flags, to optimize for space reduction instead of
-for speed. Another way, which can have a large effect, is to remove debugging
-information from your  build.
-
-
-
-You should be very sure you know what you are doing before deciding to remove
-debugging information. Running bleeding-edge software means you are running
-software which is potentially much more likely to crash than a stable release.
-If you are running software without debugging information, it can be very
-hard to create a good bug report to get your bug resolved, and you will likely
-have to re-enable debugging information for the affected application and
-rebuild to help a developer fix the crash. So, remove debugging information
-at your own risk!
-
-
-
-Removing the build directory after installation of a module. The source
-directory is still kept, and debugging is enabled:
-
-
-global
-  configure-flags  --enable-debug
-  remove-after-install builddir# Remove build directory after install
-end global
-
-
-Removing the build direct

[sdk/kdesrc-build] doc: doc: supported-envvars - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 9a361f06e316d11f3c01e5e9262615d677464863 by Andrew Shark.
Committed on 05/01/2024 at 20:00.
Pushed by ashark into branch 'master'.

doc: supported-envvars - separate docbook

M  +1-10   doc/cmdline.docbook
M  +1-0doc/index.docbook
A  +10   -0doc/supported-envvars.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/9a361f06e316d11f3c01e5e9262615d677464863

diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook
index 4273c346..a3380279 100644
--- a/doc/cmdline.docbook
+++ b/doc/cmdline.docbook
@@ -98,16 +98,7 @@ modules you want.
 
 
 
-
-Supported Environment Variables
-
-
- does not use environment variables. If you need to set 
environment
-variables for the build or install process, please see the set-env option.
-
-
-
+
 
 
 
diff --git a/doc/index.docbook b/doc/index.docbook
index 953c9979..7c9b7e16 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -90,6 +90,7 @@
   
   
   
+  
 ]>
 
 
diff --git a/doc/supported-envvars.docbook b/doc/supported-envvars.docbook
new file mode 100644
index ..772b325b
--- /dev/null
+++ b/doc/supported-envvars.docbook
@@ -0,0 +1,10 @@
+
+Supported Environment Variables
+
+
+ does not use environment variables. If you need to set 
environment
+variables for the build or install process, please see the set-env option.
+
+
+



[sdk/kdesrc-build] doc: doc: quick-start-conclusion - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 24aafe7a055fd0afa487cc702fc0547bb63f9d6d by Andrew Shark.
Committed on 05/01/2024 at 20:00.
Pushed by ashark into branch 'master'.

doc: quick-start-conclusion - separate docbook

M  +1-17   doc/getting-started.docbook
M  +1-0doc/index.docbook
A  +17   -0doc/quick-start-conclusion.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/24aafe7a055fd0afa487cc702fc0547bb63f9d6d

diff --git a/doc/getting-started.docbook b/doc/getting-started.docbook
index 98997abf..657d8b59 100644
--- a/doc/getting-started.docbook
+++ b/doc/getting-started.docbook
@@ -218,22 +218,6 @@ linkend="configure-data" /> and in .
 
 
 
-
-Getting Started Conclusion
-These are the major features and concepts needed to get started with
-
-
-For additional information, you could keep reading through this
-documentation. In particular, the list
-of command-line options and the table
-of configuration file options are useful references.
-
-The  Community also maintains https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source;>an
-online Wiki reference for how to build the source code, which refers to
- and includes tips and other guidelines on how to use the
-tool.
-
-
+
 
 
diff --git a/doc/index.docbook b/doc/index.docbook
index 7592879a..98fca4d6 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -88,6 +88,7 @@
   
   
   
+  
 ]>
 
 
diff --git a/doc/quick-start-conclusion.docbook 
b/doc/quick-start-conclusion.docbook
new file mode 100644
index ..d4a42fce
--- /dev/null
+++ b/doc/quick-start-conclusion.docbook
@@ -0,0 +1,17 @@
+
+Getting Started Conclusion
+These are the major features and concepts needed to get started with
+
+
+For additional information, you could keep reading through this
+documentation. In particular, the list
+of command-line options and the table
+of configuration file options are useful references.
+
+The  Community also maintains https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source;>an
+online Wiki reference for how to build the source code, which refers to
+ and includes tips and other guidelines on how to use the
+tool.
+
+



[sdk/kdesrc-build] doc: doc: kdesrc-buildrc - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 7f814fbe007722d5c63c4b5ad011dbe85ba90765 by Andrew Shark.
Committed on 05/01/2024 at 20:00.
Pushed by ashark into branch 'master'.

doc: kdesrc-buildrc - separate docbook

M  +2-231  doc/index.docbook
A  +231  -0doc/kdesrc-buildrc.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/7f814fbe007722d5c63c4b5ad011dbe85ba90765

diff --git a/doc/index.docbook b/doc/index.docbook
index 78e55044..f8b1b1a7 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -86,6 +86,7 @@
   
   
   
+  
 ]>
 
 
@@ -152,237 +153,7 @@ directly from the  project's source code 
repositories.
 
 
 
-
-Configuring 
-
-
-Overview of  configuration
-
-
-To use the script, you must have a file in your home directory called
-.kdesrc-buildrc, which describes the modules you would
-like to download and build, and any options or configuration parameters to
-use for these modules.
-
-
-
-Layout of the configuration file
-
-
-Global configuration
-
-
-The configuration file starts with the global options, specified like the
-following:
-
-
-
-global
-option-name option-value
-[...]
-end global
-
-
-
-
-Module configuration
-
-
-It is then followed by one or more module sections, specified in one of the
-following two forms:
-
-
-
-
-
-module module-name
-option-name option-value
-[...]
-end module
-
-
-
-
-
-module-set module-set-name
-  repository kde-projects or 
git://host.org/path/to/repo.git
-  use-modules module-names
-
-# Other options may also be set
-option-name option-value
-[...]
-end module-set
-
-
-
-
-Note that the second form, module sets, only works
-for Git-based modules.
-
-
-For Git modules, module-name must be a module
-from the   repository (for example, kdeartwork or
-kde-wallpapers).
-
-
-
-For Git modules, the module name can be essentially whatever you'd like, as
-long as it does not duplicate any other module name in the configuration. Keep
-in mind the source and build directory layout will be based on the module name
-if you do not use the dest-dir option.
-
-
-However, for Git module sets the
-module-names must correspond with actual git modules
-in the chosen repository. See git-repository-base or use-modules for more information.
-
-
-
-
-
-Processing of option values
-
-In general, the entire line contents after the
-option-name is used as the
-option-value.
-
-One modification that  performs is that a sequence
-${name-of-option} is replaced
-with the value of that option from the global configuration. This allows you
-to reference the value of existing options, including options already set by
-.
-
-
-To see an example of this in use, see
-.
-
-
-
-
-options modules
-
-There is a final type of configuration file entry,
-options groups, which may be given wherever a
-module or module-set may be used.
-
-
-options module-name
-option-name option-value
-[...]
-end options
-
-
-An options group may have options set for it just like
-a module declaration, and is associated with an existing module. Any options
-set these way will be used to override options set for the
-associated module.
-
-The associated module name must match the
-name given in the options declaration. Be careful of
-mis-typing the name.
-
-This is useful to allow for declaring an entire
-module-set worth of modules, all using the same options, and
-then using options groups to make individual changes.
-
-options groups can also apply to named module sets.
-This allows expert users to use a common configuration file (which includes
-module-set declarations) as a baseline, and then make 
changes
-to the options used by those module-sets in configuration files that
-use the include command to 
reference
-the base configuration.
-
-
-Example of using options
-
-In this example we choose to build all modules from the  multimedia
-software grouping. However we want to use a different version of the 
-application (perhaps for testing a bug fix). It works as follows:
-
-
-module-set kde-multimedia-set
-  repository kde-projects
-  use-modules kde/kdemultimedia
-  branch master
-end module-set
-
-# kmix is a part of kde/kdemultimedia group, even though we never named
-# kmix earlier in this file,  will figure out the change.
-options kmix
-  branch KDE/4.12
-end options
-
-
-Now when you run , all of the  multimedia programs 
will
-be built from the master branch of the source repository, but
- will be built from the older KDE/4.12 branch. By using
-options you didn't have to individually list all the
-other  multimedia programs to give them the right
-branch option.
-
-
-
-
-Note that this feature is only available in  from version
-1.16, or using the development version of  after
-2014-01-12.
-
-
-
-
-
-
-Including other configuration files
-
-
-Within the configuration file, you may reference other files by using the
-include keyword with a file, which will act as if the file
-referenced had been inserted into the configuration file at that point.
-
-
-For example, you could have something like this:
-
-global
-incl

[sdk/kdesrc-build] doc: doc: environment - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 4e14ba8ba891a65db5f7c241b96d8f30129e5b46 by Andrew Shark.
Committed on 05/01/2024 at 19:59.
Pushed by ashark into branch 'master'.

doc: environment - separate docbook

A  +127  -0doc/environment.docbook
M  +2-127  doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/4e14ba8ba891a65db5f7c241b96d8f30129e5b46

diff --git a/doc/environment.docbook b/doc/environment.docbook
new file mode 100644
index ..d5929b59
--- /dev/null
+++ b/doc/environment.docbook
@@ -0,0 +1,127 @@
+
+Setting the Environment to Run Your   Desktop
+
+
+Assuming you are using a dedicated user to build  , and you 
already have an
+installed  version, running your new  may be a bit tricky, as 
the new
+ has to take precedence over the old. You must change the environment
+variables of your login scripts to make sure the newly-built desktop is used.
+
+
+
+Automatically installing a login driver
+
+Starting from version 1.16,  will try to install an
+appropriate login driver, that will allow you to login to your
+-built  desktop from your login manager. This can be
+disabled by using the install-session-driver
+configuration file option.
+
+Session setup does not occur while  is running
+in pretend mode.
+
+This driver works by setting up a custom 
xsession
+session type. This type of session should work by default with the sddm login
+manager (where it appears as a Custom session), but other login
+managers (such as LightDM and
+gdm) may require additional files installed to
+enable xsession support.
+
+
+Adding xsession support for distributions
+
+The default login managers for some distributions may require additional
+packages to be installed in order to support xsession 
logins.
+
+
+The https://getfedora.org/;>Fedora
+ distribution requires the xorg-x11-xinit-session
+package to be installed for custom xsession login
+support.
+
+https://www.debian.org/;>Debian and
+Debian-derived  distributions should support custom
+xsession logins, but require the
+allow-user-xsession option to be set in
+/etc/X11/Xsession.options. See also the Debian https://www.debian.org/doc/manuals/debian-reference/ch07.en.html#_customizing_the_x_session_classic_method;>documentation
+on customizing the X session.
+
+For other distributions, go to .
+
+
+
+
+
+Manually adding support for xsession
+
+If there were no distribution-specific directions for your distribution
+in , you can manually add a
+Custom xsession login entry to your distribution's list of
+session types as follows:
+
+
+Adding an .xsession login session type.
+
+This procedure will likely require administrative privileges to
+complete.
+
+
+
+Create the file
+/usr/share/xsessions/kdesrc-build.desktop.
+
+
+
+Ensure the file just created has the following text:
+
+Type=XSession
+Exec=$HOME/.xsession
+Name=KDE Plasma Desktop (unstable; kdesrc-build)
+
+
+
+
+The $HOME entry must be replaced by the full path to
+your home directory (example, /home/user).  The
+desktop entry specification does not allow for user-generic files.
+
+
+
+
+
+When the login manager is restarted, it
+should show a new session type, KDE Plasma Desktop (unstable;
+kdesrc-build) in its list of sessions, which should try to run the
+.xsession file installed by  if it is
+selected when you login.
+
+It may be easiest to restart the computer to restart the login
+manager, if the login manager does not track updates to the /usr/share/xsessions directory.
+
+
+
+
+
+
+
+
+
+
+Setting up the environment manually
+This documentation used to include instruction on which environment
+variables to set in order to load up the newly-built desktop. These
+instructions have been moved to an appendix ().
+
+If you intend to setup your own login support you can consult that
+appendix or view the kde-env-master.sh.in file
+included with the  source.
+
+
+
+
diff --git a/doc/index.docbook b/doc/index.docbook
index 2e8306bb..e4f365d5 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -78,6 +78,7 @@
   
   
   
+  
 ]>
 
 
@@ -443,133 +444,7 @@ linkend="configure-data" /> and in .
 
 
 
-
-Setting the Environment to Run Your   Desktop
-
-
-Assuming you are using a dedicated user to build  , and you 
already have an
-installed  version, running your new  may be a bit tricky, as 
the new
- has to take precedence over the old. You must change the environment
-variables of your login scripts to make sure the newly-built desktop is used.
-
-
-
-Automatically installing a login driver
-
-Starting from version 1.16,  will try to install an
-appropriate login driver, that will allow you to login to your
--built  desktop from your login manager. This can be
-disabled by using the install-session-driver
-configuration file option.
-
-Session setup does not occur while  is running
-in pretend mode.
-
-This driver works by setting up a custom 
xsession
-session type. This type of session should work by default with the sddm login
-manager (where it appears as a Custom session), 

[sdk/kdesrc-build] doc: doc: getting-started - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 5cffc45604ee1d07cc545220a99ab5443513f196 by Andrew Shark.
Committed on 05/01/2024 at 19:59.
Pushed by ashark into branch 'master'.

doc: getting-started - separate docbook

C  +0-676  doc/getting-started.docbook [from: doc/index.docbook - 051% 
similarity]
M  +2-591  doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/5cffc45604ee1d07cc545220a99ab5443513f196

diff --git a/doc/index.docbook b/doc/getting-started.docbook
similarity index 51%
copy from doc/index.docbook
copy to doc/getting-started.docbook
index 02ceb3ba..53d0d1b8 100644
--- a/doc/index.docbook
+++ b/doc/getting-started.docbook
@@ -1,234 +1,3 @@
-
-
-
-Copyright (c) 2005 Carlos Leonhard Woelz 
-Copyright (c) 2009 Burkhard Lück 
-Copyright (c) 2007, 2011 Federico Zenith 
-Copyright (c) 2009-2011 Yuri Chornoivan 
-... and possibly others. Check the git source repository for specifics.
-
-Permission is granted to copy, distribute and/or modify this document under
-the terms of the GNU Free Documentation License, Version 1.2 or any later
-version published by the Free Software Foundation; with no Invariant
-Sections, no Front-Cover Texts, and no Back-Cover Texts.
-
-A copy of the license is included in COPYING.DOC. The license will be
-included in the generated documentation as well.
-   -->
-  
-  
-  
-   
-  kdesrc-build">
-  BSD'>
-  Git'>
-  CMake'>
-  Make'>
-  Ninja'>
-  SSH'>
-  Cron'>
-  Sudo'>
-  URL'>
-
-  
-
-  configure-flags'>
-  install-dir'>
-  qtdir'>
-  build-dir'>
-  source-dir'>
-  colorful-output'>
-  tag'>
-  branch'>
-  do-not-compile'>
-  repository'>
-  make-install-prefix'>
-  niceness'>
-  set-env'>
-  libname'>
-  libpath'>
-  binpath'>
-
-  
-  --nice'>
-  --ignore-modules'>
-  --resume-from'>
-  --resume-after'>
-  --reconfigure'>
-  --refresh-build'>
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-]>
-
-
-
-
- Script Manual
-
-
- 
-
-
CarlosWoelz
-carloswo...@imap-mail.com
-
-
-
-
-
-
-
-2006
-2007
-2008
-2009
-2010
-2011
-2012
-2013
-2014
-2015
-2016
-2017
-2018
-2019
-Michael Pyne
-
-
-
-2005
-Carlos Woelz
-
-
-
-
-2018-01-20
- 17.12
-
-
- is a script which builds and installs  software
-directly from the  project's source code repositories.
-
-
-
-KDE
-kdesdk
-git
-KDE development
-
-
-
-
-
-Introduction
-
-
-A brief introduction to 
-
-
-What is ?
-
-
- is a script to help the  community install https://www.kde.org/;> software from its https://git-scm.com/;> source repositories,
-and continue to update that software afterwards.
-It is particularly intended to support those who need to supporting testing and
-development of  software, including users testing bugfixes and developers
-working on new features.
-
-
-The  script can be configured to maintain a single 
individual
-module, a full  desktop with  application set, or somewhere in 
between.
-
-
-To get started, see , or continue 
reading for more
-detail on how  works and what is covered in this documentation.
-
-
-
-
- operation in a nutshell
-
- works by using the tools available to the user at the
-command-line, using the same interfaces available to the user. When
- is run, the following sequence is followed: 
-
-
- reads in the command
-line and configuration file, to
-determine what to build, compile options to use, where to install,
-
-
- performs a source update for each module. The update continues until all modules
-have been updated. Modules that fail to update normally do not stop the build
- you will be notified at the end which modules did not
-update.
-
-Modules that were successfully updated are built, have their
-test suite run, and are then installed.  To reduce the overall time spent,
- will by default start building the code as soon as the first
-module has completed updating, and allow the remaining updates to continue
-behind the scenes.
-
-
-
-A very good overview of how  modules are
-built, including informative diagrams, is provided on https://www.davidrevoy.com/article193/guide-building-krita-on-linux-for-
-cats">an online article discussing 's  application.  This
-workflow is what  automates for all  modules.
-
-
-
-
-
-
-Documentation Overview
-
-
-This guide is an overview to describe the following aspects of 
-operation:
-
-
-
-An overview of the steps
-required to get started.
-Notable features.
-The configuration file 
syntax
-and options.
-The command line 
options.
-
-
-Also documented are the steps which you should perform using
-other tools ( steps that are not automatically performed by 
).
-
-
-
-
-
 
 Getting Started
 
@@ -820,448 +589,3 @@ tool.
 
 
 
-
-
-
-
-Configuring 
-
-
-Overview of  configuration
-
-
-To use the script, you must have a file in your home directory called
-.kdesrc-buildrc, which describes the modules you would
-like to download and build, and any options

[sdk/kdesrc-build] doc: doc: using-kdesrc-build - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 0d1b9be51cbdf2d841c95dadb1d31435b7eb0bc2 by Andrew Shark.
Committed on 05/01/2024 at 20:00.
Pushed by ashark into branch 'master'.

doc: using-kdesrc-build - separate docbook

M  +2-30   doc/index.docbook
A  +30   -0doc/using-kdesrc-build.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/0d1b9be51cbdf2d841c95dadb1d31435b7eb0bc2

diff --git a/doc/index.docbook b/doc/index.docbook
index 7c9b7e16..cd6ecdb9 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -91,6 +91,7 @@
   
   
   
+  
 ]>
 
 
@@ -161,36 +162,7 @@ directly from the  project's source code 
repositories.
 
 
 
-
-Using 
-
-
-Preface
-
-Normally using  after you have gone through 
-is as easy as doing the following from a terminal prompt:
-
-
- 
kdesrc-build
-
-
- will then download the sources for , try to configure
-and build them, and then install them.
-
-Read on to discover how  does this, and what else you can
-do with this tool.
-
-
-
-
-
-
-
-
-
-
-
-
+
 
 
 
diff --git a/doc/using-kdesrc-build.docbook b/doc/using-kdesrc-build.docbook
new file mode 100644
index ..5c3fabd2
--- /dev/null
+++ b/doc/using-kdesrc-build.docbook
@@ -0,0 +1,30 @@
+
+Using 
+
+
+Preface
+
+Normally using  after you have gone through 
+is as easy as doing the following from a terminal prompt:
+
+
+ 
kdesrc-build
+
+
+ will then download the sources for , try to configure
+and build them, and then install them.
+
+Read on to discover how  does this, and what else you can
+do with this tool.
+
+
+
+
+
+
+
+
+
+
+
+



[sdk/kdesrc-build] doc: doc: conf-options-table - separate docbook

2024-01-05 Thread Andrew Shark
Git commit cce1c6a1d1d4332e84a6e2c681893e274f203a0d by Andrew Shark.
Committed on 05/01/2024 at 19:58.
Pushed by ashark into branch 'master'.

doc: conf-options-table - separate docbook

A  +1363 -0doc/conf-options-table.docbook [INFRASTRUCTURE]
M  +2-1363 doc/index.docbook

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

diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook
new file mode 100644
index ..8c1a32e9
--- /dev/null
+++ b/doc/conf-options-table.docbook
@@ -0,0 +1,1363 @@
+
+Table of available configuration options
+
+Here is a table of the various options, containing the following
+information:
+
+
+
+The option name
+
+A description of how  responds if the option is
+set in both the global section, and the module section of the configuration file while building a
+module.
+
+Special comments on the purpose and usage of the
+option.
+
+
+
+
+Global scope only options
+
+
+
+
+Option name
+Description
+
+
+
+
+
+async
+
+
+TypeBoolean
+Default valueTrue
+Available since1.6
+
+This option enables the asynchronous mode of operation, where the source
+code update and the build process will be performed in parallel, instead of 
waiting for
+all of the source code updates before starting the build 
process.
+
+
+
+colorful-output
+
+TypeBoolean
+Default valueTrue
+Set this option to false to disable 
the colorful output of .
+Note that  will not output the
+color codes to anything but a terminal (such as xterm, , or the normal
+ console).
+
+
+
+
+disable-agent-check
+
+
+TypeBoolean
+Default valueFalse
+
+If you are using  to download the  sources
+(such as if you are using the git+ssh protocol), this option controls if 
 will try and
+make sure that if you are using ssh-agent, it is actually managing some 
+identities. This is to try and prevent  from asking for your pass phrase
+for every module.
+
+
+
+
+git-desired-protocol
+
+
+TypeString
+Default valuegit
+History informationThis option was added in 
 1.16. Prior to 20.06 this option
+was used to configure the fetch URL instead of the push URL. As of 20.06
+https is always used when updating KDE projects.
+
+This option only applies to modules from a  project repository.
+
+What this option actually does is configure which network protocol to
+prefer when pushing source code for these modules. Normally the very-efficient
+git protocol is used, but this may be blocked in some
+networks (e.g. corporate intranets, public Wi-Fi). An alternative protocol
+which is much better supported is the https protocol used 
for
+Internet web sites.
+
+If you are using one of these constrained networks you can set this
+option to http to prefer https
+communications instead.
+
+You may also need the http-proxy option if an HTTP proxy is also
+needed for network traffic.
+
+In any other situation you should not set this option as the default
+protocol is most efficient.
+
+
+
+
+
+install-environment-driver
+
+
+TypeBoolean
+Default valueTrue
+Available since17.08
+
+Install a shell script that can be
+sourced in a user's profile setup scripts to easily establish needed 
environment
+variables to run the Plasma desktop built by .
+
+This driver will alter the following files:
+
+
+$XDG_CONFIG_HOME/kde-env-master.sh 
(normally found at 
~/.config/kde-env-master.sh).
+$XDG_CONFIG_HOME/kde-env-user.sh 
(normally found at 
~/.config/kde-env-user.sh).
+
+
+The kde-env-user.sh is optional.  It is
+intended for user customizations (see the https://userbase.kde.org/KDE_System_Administration/Environment_Variables#Troubleshooting_and_Debugging;>Troubleshooting
 and Debugging
+section of the  UserBase for examples of customizable settings), but 
these settings
+can be set elsewhere by the user in their existing profile setup 
scripts.
+
+You can disable this feature by setting this option to
+false, and ensuring that the install-session-driver option is
+also disabled.
+
+ will not overwrite your existing files (if present)
+unless you also pass the --delete-my-settings
+command-line option.
+
+
+
+
+install-session-driver
+
+
+TypeBoolean
+Default valueTrue
+Available since1.16
+
+If enabled,  will try to install a driver for the graphical
+login manager that allows you to login to your -built  
desktop.
+
+This driver will alter the following files:
+
+
+~/.xsession
+$XDG_CONFIG_HOME/kde-env-master.sh 
(normally found at 
~/.config/kde-env-master.sh).
+$XDG_CONFIG_HOME/kde-env-user.sh 
(normally found at 
~/.config/kde-env-user.sh).
+
+
+If you maintain your own login driver then you can disable this feature 
by setting this
+option to false.  If enabled, this feature also 
enables the
+install-environment-driver 
feature.
+
+ will not overwrite your existing files (if present)
+unless you also pass the --delete-my-settings
+command-line option.
+
+
+
+
+niceness
+
+
+TypeInteger
+Default value10
+
+Set this option to a number between 20 and 0. The higher the number, the
+lower a prior

[sdk/kdesrc-build] doc: doc: kde-cmake - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 3e5fffc88db32f4fe3d0fb7f2f9e364f03ab0d91 by Andrew Shark.
Committed on 05/01/2024 at 19:59.
Pushed by ashark into branch 'master'.

doc: kde-cmake - separate docbook

M  +2-29   doc/index.docbook
A  +29   -0doc/kde-cmake.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/3e5fffc88db32f4fe3d0fb7f2f9e364f03ab0d91

diff --git a/doc/index.docbook b/doc/index.docbook
index 39d821d5..d17b5b80 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -83,6 +83,7 @@
   
   
   
+  
 ]>
 
 
@@ -555,35 +556,7 @@ end global
 
 
 
-
-, the  build system
-
-
-Introduction to 
-
-In March 2006, the  program
-beat out several competitors and was selected to be the build system for  
4, replacing the
-autotools-based system that  had used from the beginning.
-
-A introduction to  page is available on the https://community.kde.org/Guidelines_HOWTOs/CMake;> Community 
Wiki.
-Basically, instead of running make 
-f
-Makefile.cvs, then 
configure,
-then , we simply run  and then .
-
-
- has support for . A few features of 
-were really features of the underlying buildsystem, including
-configure-flags
-and do-not-compile. When equivalent
-features are available, they are provided. For instance, the equivalent to the
-configure-flags option is cmake-options, and the
-do-not-compile option is also 
supported for 
-as of  version 1.6.3.
-
-
-
-
+
 
 
 
diff --git a/doc/kde-cmake.docbook b/doc/kde-cmake.docbook
new file mode 100644
index ..9c818591
--- /dev/null
+++ b/doc/kde-cmake.docbook
@@ -0,0 +1,29 @@
+
+, the  build system
+
+
+Introduction to 
+
+In March 2006, the  program
+beat out several competitors and was selected to be the build system for  
4, replacing the
+autotools-based system that  had used from the beginning.
+
+A introduction to  page is available on the https://community.kde.org/Guidelines_HOWTOs/CMake;> Community 
Wiki.
+Basically, instead of running make 
-f
+Makefile.cvs, then 
configure,
+then , we simply run  and then .
+
+
+ has support for . A few features of 
+were really features of the underlying buildsystem, including
+configure-flags
+and do-not-compile. When equivalent
+features are available, they are provided. For instance, the equivalent to the
+configure-flags option is cmake-options, and the
+do-not-compile option is also 
supported for 
+as of  version 1.6.3.
+
+
+
+



[sdk/kdesrc-build] doc: doc: features - separate docbook

2024-01-05 Thread Andrew Shark
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  -0doc/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 ..2a911dc3
--- /dev/null
+++ b/doc/features.docbook
@@ -0,0 +1,262 @@
+
+Script Features
+
+
+Feature Overview
+
+
+ features include:
+
+
+
+
+
+You can pretend to do the operations. If you pass
+--pretend or -p 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 , you would want to run the kdesrc-build
+--metadata-only
+command first in order for --pretend to work.
+
+For an even more verbose description of what  is
+doing, try using the --debug option.
+
+
+
+
+
+ allows you to checkout modules quickly. If the module you are 
checking out
+has already been checked out previously, then  will download 
only commits
+that are not yet on your computer.
+
+
+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.
+
+This is faster for you, and helps to ease the load on the kde.org
+anonymous  servers.
+
+
+
+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)
+
+
+
+Excellent support for building the  library (in case the  software you
+are trying to build depends on a recent  not available in your
+distribution).
+
+
+
+ does not require a GUI present to operate. 
So,
+you can build  software without needing a graphical environment.
+
+
+
+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.
+
+Also,  will add
+standard flags 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.:
+cmake-toolchain
+
+
+
+ can checkout a specific branch
+or tag of a module. You can also ensure that a specific revision is checked out of a module.
+
+
+
+ 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  should be, but you must
+use the --src-only option to let
+ know that it is acceptable to perform the switch.
+
+
+
+ can checkout only portions of a
+module, for those situations where you only need one program from a
+large module.
+
+
+
+For developers:  will remind
+you if you use git+ssh:// but ssh-agent is
+not running, as this will lead to repeated password requests from
+.
+
+
+
+Can delete the build directory of a
+module after its installation to save space at the expense of future 
compilation
+time.
+
+
+
+The locations for the directories used by  are configurable (even
+per module).
+
+
+
+Can use , or a different user-specified command
+to install modules so that
+ does not need to be run as the super user.
+
+
+
+ runs with reduced priority
+by default to allow you to still use your computer while  is
+working.
+
+
+
+Has support for using 's tags and
+branches.
+
+
+
+There is support for resuming a build from a
+given module. You can even ignore some
+modules temporarily for a given build.
+
+
+
+ will show the progress of your
+build when using , and will always time the build
+process so you know after the fact how long it took.
+
+
+
+Comes built-in with a sane set of default options appropriate for building
+a base  single-user installation from the anonymous source repositories.
+
+
+
+Tilde-expansion for your configuration options. For example, you can
+specify:
+qtdir ~/kdesrc/build/qt
+
+
+
+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.
+
+
+
+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.
+
+
+
+Forced full rebuilds, by running
+ with the --refresh-build option.
+
+
+
+You can specify various environment values to be used during the build,
+including QTDIR, DO_NOT_COMPILE,
+and CXXFLAGS.
+
+
+
+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.
+
+
+
+
+
+
+
+'s build logging
+
+
+Logging overview
+
+Logging is a  feature whereby the output from every command

[sdk/kdesrc-build] doc: doc: introduction - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 894df557e1279b21d7f5249f12c76d33885bf4ad by Andrew Shark.
Committed on 05/01/2024 at 19:59.
Pushed by ashark into branch 'master'.

doc: introduction - separate docbook

M  +2-67   doc/index.docbook
A  +67   -0doc/introduction.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/894df557e1279b21d7f5249f12c76d33885bf4ad

diff --git a/doc/index.docbook b/doc/index.docbook
index 3038d2d2..39d821d5 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -82,6 +82,7 @@
   
   
   
+  
 ]>
 
 
@@ -142,73 +143,7 @@ directly from the  project's source code 
repositories.
 
 
 
-
-Introduction
-
-
-A brief introduction to 
-
-
-What is ?
-
-
- is a script to help the  community install https://www.kde.org/;> software from its https://git-scm.com/;> source repositories,
-and continue to update that software afterwards.
-It is particularly intended to support those who need to supporting testing and
-development of  software, including users testing bugfixes and developers
-working on new features.
-
-
-The  script can be configured to maintain a single 
individual
-module, a full  desktop with  application set, or somewhere in 
between.
-
-
-To get started, see , or continue 
reading for more
-detail on how  works and what is covered in this documentation.
-
-
-
-
- operation in a nutshell
-
- works by using the tools available to the user at the
-command-line, using the same interfaces available to the user. When
- is run, the following sequence is followed: 
-
-
- reads in the command
-line and configuration file, to
-determine what to build, compile options to use, where to install,
-
-
- performs a source update for each module. The update continues until all modules
-have been updated. Modules that fail to update normally do not stop the build
- you will be notified at the end which modules did not
-update.
-
-Modules that were successfully updated are built, have their
-test suite run, and are then installed.  To reduce the overall time spent,
- will by default start building the code as soon as the first
-module has completed updating, and allow the remaining updates to continue
-behind the scenes.
-
-
-
-A very good overview of how  modules are
-built, including informative diagrams, is provided on https://www.davidrevoy.com/article193/guide-building-krita-on-linux-for-
-cats">an online article discussing 's  application.  This
-workflow is what  automates for all  modules.
-
-
-
-
-
-
-
+
 
 
 
diff --git a/doc/introduction.docbook b/doc/introduction.docbook
new file mode 100644
index ..e6ca3256
--- /dev/null
+++ b/doc/introduction.docbook
@@ -0,0 +1,67 @@
+
+Introduction
+
+
+A brief introduction to 
+
+
+What is ?
+
+
+ is a script to help the  community install https://www.kde.org/;> software from its https://git-scm.com/;> source repositories,
+and continue to update that software afterwards.
+It is particularly intended to support those who need to supporting testing and
+development of  software, including users testing bugfixes and developers
+working on new features.
+
+
+The  script can be configured to maintain a single 
individual
+module, a full  desktop with  application set, or somewhere in 
between.
+
+
+To get started, see , or continue 
reading for more
+detail on how  works and what is covered in this documentation.
+
+
+
+
+ operation in a nutshell
+
+ works by using the tools available to the user at the
+command-line, using the same interfaces available to the user. When
+ is run, the following sequence is followed: 
+
+
+ reads in the command
+line and configuration file, to
+determine what to build, compile options to use, where to install,
+
+
+ performs a source update for each module. The update continues until all modules
+have been updated. Modules that fail to update normally do not stop the build
+ you will be notified at the end which modules did not
+update.
+
+Modules that were successfully updated are built, have their
+test suite run, and are then installed.  To reduce the overall time spent,
+ will by default start building the code as soon as the first
+module has completed updating, and allow the remaining updates to continue
+behind the scenes.
+
+
+
+A very good overview of how  modules are
+built, including informative diagrams, is provided on https://www.davidrevoy.com/article193/guide-building-krita-on-linux-for-
+cats">an online article discussing 's  application.  This
+workflow is what  automates for all  modules.
+
+
+
+
+
+
+



[sdk/kdesrc-build] doc: doc: cmdline - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 6496ae8eabf61c86d586f11a0c4000bf9fb9076b by Andrew Shark.
Committed on 05/01/2024 at 19:58.
Pushed by ashark into branch 'master'.

doc: cmdline - separate docbook

A  +837  -0doc/cmdline.docbook
M  +2-837  doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/6496ae8eabf61c86d586f11a0c4000bf9fb9076b

diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook
new file mode 100644
index ..ecec619f
--- /dev/null
+++ b/doc/cmdline.docbook
@@ -0,0 +1,837 @@
+
+Command Line Options and Environment Variables
+
+
+Command Line Usage
+
+ is designed to be run as follows:
+
+
+kdesrc-build
+--options
+modules to build
+
+
+If no modules to build are specified on the command line, then
+kdesrc-build will build all modules defined in its configuration file, in the
+order listed in that file (although this can be modified by various
+configuration file options).
+
+
+Commonly used command line options
+
+The full list of command line options is given in . The most-commonly used options
+include:
+
+
+  
+--pretend (or -p)
+This option causes  to indicate what actions
+it would take, without actually really implementing them. This can be
+useful to make sure that the modules you think you are building will
+actually get built.
+  
+
+  
+--refresh-build
+This option forces  to build the given
+modules from an absolutely fresh start point. Any existing build directory
+for that module is removed and it is rebuilt. This option is useful if you
+have errors building a module, and sometimes is required when  or 
+libraries change.
+  
+
+  
+--no-src
+This option skips the source update process. You might use
+it if you have very recently updated the source code (perhaps you did it
+manually or recently ran ) but still want to rebuild some
+modules.
+  
+
+  
+--no-build
+This option is similar to --no-src above,
+but this time the build process is skipped.
+  
+
+
+
+
+
+Specifying modules to build
+
+In general, specifying modules to build is as simple as passing their
+module name as you defined it in the configuration file. You can also pass
+modules that are part of a module set, either as named on use-modules, or the name of the entire module
+set itself, if you have given it a name.
+
+In the specific case of module sets based against the KDE project database, 
+will expand module name components to determine the exact module you
+want. For example, 's KDE project entry locates the project in
+extragear/utils/kdesrc-build. You could specify any
+of the following to build :
+
+
+
+ kdesrc-build 
+extragear/utils/kdesrc-build
+ kdesrc-build 
+utils/kdesrc-build
+ kdesrc-build 
+kdesrc-build
+
+
+
+The commands in the previous example preceded the module-name with
+a +. This forces the module name to be interpreted as a module
+from the KDE project database, even if that module hasn't been defined in your
+configuration file.
+
+
+Be careful about specifying very generic projects (e.g.
+extragear/utils by itself), as this can lead to a large
+amount of modules being built. You should use the --pretend
+option before building a new module set to ensure it is only building the
+modules you want.
+
+
+
+
+
+Supported Environment Variables
+
+
+ does not use environment variables. If you need to set 
environment
+variables for the build or install process, please see the set-env option.
+
+
+
+
+
+Supported command-line parameters
+
+
+The script accepts the following command-line options:
+
+
+
+
+
+--async
+
+Enables the asynchronous mode, which can
+perform the source code updates and module builds at the same time.  This is
+the default, this option only needs specified if you have disabled it in the
+configuration.
+
+
+
+
+--help (or -h)
+
+Only display simple help on this script.
+
+
+
+
+--version (or -v)
+
+Display the program version.
+
+
+
+
+--show-info
+
+Displays information about  and the operating system, that may
+prove useful in bug reports or when asking for help in forums or mailing lists.
+
+Available since version 18.11.
+
+
+
+
+--initial-setup
+
+Has  perform the one-time initial setup necessary to prepare
+the system for  to operate, and for the newly-installed 
+software to run.
+
+This includes:
+
+Installing known dependencies (on supported  
distributions)
+Adding required environment variables to 
~/.bashrc
+Setting up a configuration 
file
+
+This option is exactly equivalent to using
+--install-distro-packages
+--generate-config
+--update-shellrc at the same 
time.
+
+
+
+
+
+--install-distro-packages
+
+Installs distro packages (on supported  distributions) necessary to 
prepare the system for  to operate, and for the newly-installed 

+software to run.
+
+See also --initial-setup
+
+
+
+
+--generate-config
+
+Generate the  configuration file.
+
+See also --initial-setup
+
+
+
+
+--update-shellrc
+
+Edit the "~/.bashrc" (or other shell rc file) to add  to y

[sdk/kdesrc-build] doc: doc: intro-toc - separate docbook

2024-01-05 Thread Andrew Shark
Git commit fae18088f19548e12d9aef2c24321bb8f6bc9c5f by Andrew Shark.
Committed on 05/01/2024 at 19:59.
Pushed by ashark into branch 'master'.

doc: intro-toc - separate docbook

M  +2-22   doc/index.docbook
A  +22   -0doc/intro-toc.docbook

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

diff --git a/doc/index.docbook b/doc/index.docbook
index d506542a..3038d2d2 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -81,6 +81,7 @@
   
   
   
+  
 ]>
 
 
@@ -206,28 +207,7 @@ workflow is what  automates for all  
modules.
 
 
 
-
-Documentation Overview
-
-
-This guide is an overview to describe the following aspects of 
-operation:
-
-
-
-An overview of the steps
-required to get started.
-Notable features.
-The configuration file 
syntax
-and options.
-The command line 
options.
-
-
-Also documented are the steps which you should perform using
-other tools ( steps that are not automatically performed by 
).
-
-
-
+
 
 
 
diff --git a/doc/intro-toc.docbook b/doc/intro-toc.docbook
new file mode 100644
index ..00b36bf6
--- /dev/null
+++ b/doc/intro-toc.docbook
@@ -0,0 +1,22 @@
+
+Documentation Overview
+
+
+This guide is an overview to describe the following aspects of 
+operation:
+
+
+
+An overview of the steps
+required to get started.
+Notable features.
+The configuration file 
syntax
+and options.
+The command line 
options.
+
+
+Also documented are the steps which you should perform using
+other tools ( steps that are not automatically performed by 
).
+
+
+



[sdk/kdesrc-build] doc: doc: configure-data - separate docbook

2024-01-05 Thread Andrew Shark
Git commit bdd65e23ec996e9b2d286d556de32890e70833e6 by Andrew Shark.
Committed on 05/01/2024 at 19:58.
Pushed by ashark into branch 'master'.

doc: configure-data - separate docbook

A  +110  -0doc/configure-data.docbook
M  +2-110  doc/index.docbook

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

diff --git a/doc/configure-data.docbook b/doc/configure-data.docbook
new file mode 100644
index ..a4019619
--- /dev/null
+++ b/doc/configure-data.docbook
@@ -0,0 +1,110 @@
+
+Setting the Configuration Data
+
+
+To use , you should have a file in your 
~/.config
+(or in $XDG_CONFIG_HOME, if set) directory called
+kdesrc-buildrc, which sets the general options and
+specifies the modules you would like to download and build.
+
+
+
+It is possible to use different configuration files for , which 
is
+described in . If you need to use multiple
+configurations, please see that section. Here, we will assume that the
+configuration is stored in ~/.config/kdesrc-buildrc.
+
+
+
+The easiest way to proceed is to use the
+kdesrc-buildrc-kf5-sample file as a template, changing 
global
+options to match your wants, and also change the list of modules you want to
+build.
+
+
+
+The default settings should be appropriate to perform a
+ build. Some settings that you may wish to alter include:
+
+
+
+install-dir, which 
changes the
+destination directory that your  software is installed to. This defaults 
to
+~/kde/usr, which is a single-user
+installation.
+
+branch-group, which 
can
+be
+used to choose the appropriate branch of development for the  modules as a
+whole. There are many supported build configurations but you will likely want 
to
+choose kf5-qt5 so that  downloads the latest 
code
+based on  5 and  Frameworks 5.
+
+ will use a default branch group if you do not choose
+one, but this default will change over time, so it's better to choose one so
+that the branch group does not change unexpectedly.
+
+
+source-dir, to control 
the directory
+ uses for downloading the source code, running the build 
process, and saving
+logs.
+This defaults to ~/kde/src.
+
+cmake-options, which
+sets the options to pass to the  command when building each module.
+Typically this is used to set between debug or
+release builds, to enable (or disable) optional features, or to
+pass information to the build process about the location of required libraries.
+
+
+make-options, which
+sets the options used when actually running the make
+command to build each module (once  has established the build system).
+
+
+The most typical option is 
-jN,
+where N should be replaced with the maximum number 
of
+compile jobs you wish to allow.  A higher number (up to the number of logical 
CPUs
+your system has available) leads to quicker builds, but requires more system 
resources.
+
+
+ sets the option num-cores to
+the detected number of available processing cores. You can use this value
+in your own configuration file to avoid having to set it manually.
+
+
+
+Configuring Make to use all available CPUs, with exceptions
+
+global
+# This environment variable is automatically used by make, including
+# make commands not run by kdesrc-build directly, such as Qt's configure
+set-env MAKEFLAGS -j${num-cores}
+
+end global
+
+
+
+module-set big-module-set
+repository kde-projects
+use-modules calligra
+make-options -j2 # Reduced number of build jobs for just these modules
+end module-set
+
+
+
+Some very large Git repositories may swamp your system if you try 
to
+compile with a too many build jobs at one time, especially repositories like 
the
+ WebKit and  WebEngine repositories.  To maintain system interactivity
+you may have to reduce the number of build jobs for specific modules.
+ gives an example of how to do
+this.
+
+
+
+
+
+You may want to select different modules to build,
+which is described in .
+
+
diff --git a/doc/index.docbook b/doc/index.docbook
index 2df7f7b9..12020c0d 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -75,6 +75,7 @@
   
   
   
+  
 ]>
 
 
@@ -434,116 +435,7 @@ linkend="configure-data" /> and in .
 
 
 
-
-Setting the Configuration Data
-
-
-To use , you should have a file in your 
~/.config
-(or in $XDG_CONFIG_HOME, if set) directory called
-kdesrc-buildrc, which sets the general options and
-specifies the modules you would like to download and build.
-
-
-
-It is possible to use different configuration files for , which 
is
-described in . If you need to use multiple
-configurations, please see that section. Here, we will assume that the
-configuration is stored in ~/.config/kdesrc-buildrc.
-
-
-
-The easiest way to proceed is to use the
-kdesrc-buildrc-kf5-sample file as a template, changing 
global
-options to match your wants, and also change the list of modules you want to
-build.
-
-
-
-The default settings should be appropriate to perform a
- build. Some settings that you may wish to alter include:
-

[sdk/kdesrc-build] doc: doc: developer-features - separate docbook

2024-01-05 Thread Andrew Shark
Git commit edc4c2b17ec35a321a6460189a01e6ed869c64e6 by Andrew Shark.
Committed on 05/01/2024 at 19:59.
Pushed by ashark into branch 'master'.

doc: developer-features - separate docbook

A  +33   -0doc/developer-features.docbook
M  +2-33   doc/index.docbook

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

diff --git a/doc/developer-features.docbook b/doc/developer-features.docbook
new file mode 100644
index ..1a5dc69a
--- /dev/null
+++ b/doc/developer-features.docbook
@@ -0,0 +1,33 @@
+
+Features for  developers
+
+
+ Agent checks
+ can ensure that  developers that use  to
+access the  source repository do not accidentally forget to leave the
+ Agent tool enabled. This can cause  to hang indefinitely
+waiting for the developer to type in their  password,
+so by default  will check if the Agent is running before
+performing source updates.
+
+
+This is only done for  developers using .
+
+
+You may wish to disable the  Agent check, in case of situations 
where
+ is mis-detecting the presence of an agent. To disable the
+agent check, set the disable-agent-check option to
+true.
+
+
+Disabling the  agent check:
+
+global
+  disable-agent-check true
+end global
+
+
+
+
+
+
diff --git a/doc/index.docbook b/doc/index.docbook
index 4e6f9d31..2e8306bb 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -77,6 +77,7 @@
   
   
   
+  
 ]>
 
 
@@ -1466,39 +1467,7 @@ do with this tool.
 
 
 
-
-Features for  developers
-
-
- Agent checks
- can ensure that  developers that use  to
-access the  source repository do not accidentally forget to leave the
- Agent tool enabled. This can cause  to hang indefinitely
-waiting for the developer to type in their  password,
-so by default  will check if the Agent is running before
-performing source updates.
-
-
-This is only done for  developers using .
-
-
-You may wish to disable the  Agent check, in case of situations 
where
- is mis-detecting the presence of an agent. To disable the
-agent check, set the disable-agent-check option to
-true.
-
-
-Disabling the  agent check:
-
-global
-  disable-agent-check true
-end global
-
-
-
-
-
-
+
 
 
 Other  features



[sdk/kdesrc-build] doc: doc: credits-and-license - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 5aafd47afe7290dbac48570dfcacc716823b53f3 by Andrew Shark.
Committed on 05/01/2024 at 19:59.
Pushed by ashark into branch 'master'.

doc: credits-and-license - separate docbook

A  +7-0doc/credits-and-license.docbook
M  +2-7doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/5aafd47afe7290dbac48570dfcacc716823b53f3

diff --git a/doc/credits-and-license.docbook b/doc/credits-and-license.docbook
new file mode 100644
index ..c1cde3c6
--- /dev/null
+++ b/doc/credits-and-license.docbook
@@ -0,0 +1,7 @@
+
+Credits And License
+
+
+
+
+
diff --git a/doc/index.docbook b/doc/index.docbook
index 12020c0d..4e6f9d31 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -76,6 +76,7 @@
   
   
   
+  
 ]>
 
 
@@ -1674,13 +1675,7 @@ as of  version 1.6.3.
 
 
 
-
-Credits And License
-
-
-
-
-
+
 
 
 



[sdk/kdesrc-build] doc: doc: building-and-troubleshooting - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 018dba9a0efa4a8ed0db24f8276a805f03c843f3 by Andrew Shark.
Committed on 05/01/2024 at 19:57.
Pushed by ashark into branch 'master'.

doc: building-and-troubleshooting - separate docbook

A  +139  -0doc/building-and-troubleshooting.docbook
M  +2-139  doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/018dba9a0efa4a8ed0db24f8276a805f03c843f3

diff --git a/doc/building-and-troubleshooting.docbook 
b/doc/building-and-troubleshooting.docbook
new file mode 100644
index ..b9d478eb
--- /dev/null
+++ b/doc/building-and-troubleshooting.docbook
@@ -0,0 +1,139 @@
+
+Using the  script
+With the configuration data established, now you are ready to run the
+script.  Even if you still have some tweaking or other reading you wish to do,
+it is a good idea to at least load the  project metadata.
+
+
+Loading project metadata
+
+
+From a terminal window, log in to the user you are using to compile  
software and
+execute the script:
+
+
+ kdesrc-build 
--metadata-only
+
+
+This command will setup the source directory and connect to the KDE 
+repositories to download the database of  git repositories, and the
+database of dependency metadata, without making any further changes.  It is
+useful to run this separately as this metadata is useful for other
+ commands. 
+
+
+
+
+Previewing what will happen when kdesrc-build runs
+
+With the project metadata installed, it is possible to preview what
+ will do when launched.  This can be done with the --pretend command line option.
+
+
+ ./kdesrc-build 
--pretend
+
+
+You should see a message saying that some packages were successfully 
built (although
+nothing was actually built).  If there were no significant problems shown, 
you can proceed
+to actually running the script.
+
+
+ 
kdesrc-build
+
+
+This command will download the appropriate source code, build and 
install each module in order. Afterwards, you should see output similar to that 
in :
+
+
+Example output of a kdesrc-build run
+
+ 
kdesrc-build
+Updating kde-build-metadata (to branch master)
+Updating sysadmin-repo-metadata (to branch master)
+
+Building libdbusmenu-qt (1/200)
+No changes to libdbusmenu-qt source, proceeding to build.
+Compiling... succeeded (after 0 seconds)
+Installing.. succeeded (after 0 seconds)
+
+Building taglib (2/200)
+Updating taglib (to branch master)
+Source update complete for taglib: 68 files affected.
+Compiling... succeeded (after 0 seconds)
+Installing.. succeeded (after 0 seconds)
+
+Building extra-cmake-modules from module-set at line 32 (3/200)
+Updating extra-cmake-modules (to branch master)
+Source update complete for extra-cmake-modules: 2 files affected.
+Compiling... succeeded (after 0 seconds)
+Installing.. succeeded (after 0 seconds)
+
+...
+
+Building kdevelop from kdev (200/200)
+Updating kdevelop (to branch master)
+Source update complete for kdevelop: 29 files affected.
+Compiling... succeeded (after 1 minute, and 34 seconds)
+Installing.. succeeded (after 2 seconds)
+
+  PACKAGES SUCCESSFULLY BUILT  
+Built 200 modules
+
+Your logs are saved in /home/kde-src/kdesrc/log/2018-01-20-07
+
+
+
+
+
+Resolving build failures
+
+
+Depending on how many modules you are downloading, it is possible that
+ will not succeed the first time you compile  software.
+Do not despair!
+
+
+ logs the output of every command it runs. By default,
+the log files are kept in ~/kdesrc/log. 
To see what
+the caused an error for a module in the last  command, usually
+it is sufficient to look at ~/kdesrc/log/latest/module-name/error.log.
+
+Perhaps the easiest way to find out what error caused a module to
+fail to build is to search backward with a case-insensitive search, starting
+from the end of the file looking for the word error.  Once
+that is found, scroll up to make sure there are no other error messages nearby.
+The first error message in a group is usually the underlying
+problem.
+
+In that file, you will see the error that caused the build to fail for
+that module. If the file says (at the bottom) that you are missing some
+packages, try installing the package (including any appropriate -dev packages)
+before trying to build that module again. Make sure that when you run
+ again to pass the --reconfigure option so that
+ forces the module to check for the missing packages
+again.
+
+Or, if the error appears to be a build error (such as a syntax error,
+incorrect prototype, unknown type, or similar)
+then it is probably an error with the  source, which will hopefully be
+resolved within a few days. If it is not resolved within that time, feel free
+to mail the kde-de...@kde.org mailing list (subscription may be
+required first) in order to report the build failure.
+
+You can find more common examples of things that can go wrong and their
+solutions, as well as general tips and strategies to build

[sdk/kdesrc-build] doc: doc: advanced-features - separate docbook

2024-01-05 Thread Andrew Shark
Git commit a26d6653d49bb5284edf92a74569bca09f0c681e by Andrew Shark.
Committed on 05/01/2024 at 19:56.
Pushed by ashark into branch 'master'.

doc: advanced-features - separate docbook

A  +420  -0doc/advanced-features.docbook
M  +6-420  doc/index.docbook

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

diff --git a/doc/advanced-features.docbook b/doc/advanced-features.docbook
new file mode 100644
index ..edb19da7
--- /dev/null
+++ b/doc/advanced-features.docbook
@@ -0,0 +1,420 @@
+
+Advanced features
+
+
+Partially building a module
+It is possible to build only pieces from a single  module. For
+example, you may want to compile only one program from a module. 
+has features to make this easy. There are several complementing ways to
+do this.
+
+
+
+Removing directories from a build
+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  and that the
+module's build system allows the directory to remove to be
+optional.
+
+
+This is controlled with the  option.
+
+
+This option requires at least that the
+build system for the module is reconfigured after changing
+it. This is done using the kdesrc-build
+
+module command.
+
+
+
+To remove the python directory
+from the kdebindings build process:
+
+
+module kdebindings
+   python
+end module
+
+
+
+
+This function depends on some standard conventions used in most
+ modules. Therefore it may not work for all programs.
+
+
+
+
+
+
+Branching and tagging support for 
+
+
+What are branches and tags?
+
+ supports managing the history of the  source code. 
+uses this support to create branches for development, and to tag the repository
+every so often with a new version release.
+
+
+For example, the  developers may be working on a new feature in
+a different branch in order to avoid breaking the version being used by most
+developers. This branch has development ongoing inside it, even while the
+main branch (called master) may have development going on inside of it.
+
+
+A tag, on the other hand, is a specified point in the source code 
repository
+at a position in time. This is used by the  administration team to mark
+off a version of code suitable for release and still allow the developers to
+work on the code.
+
+
+
+
+
+How to use branches and tags
+
+Support for branches and tags is handled by a set of options, which
+range from a generic request for a version, to a specific  to download
+for advanced users.
+
+
+The easiest method is to use the  and  options. You simply
+use the option along with the name of the desired branch or tag for a module,
+and  will try to determine the appropriate location within the
+ repository to download from. For most  modules this works very
+well.
+
+
+To download kdelibs from  4.6 (which is simply known as the 4.6 
branch):
+
+
+
+module kdelibs
+  branch 4.6
+  # other options...
+end module
+
+
+Or, to download kdemultimedia as it was released with  4.6.1:
+
+
+module kdemultimedia
+  tag 4.6.1
+  # other options...
+end module
+
+
+
+
+You can specify a global branch value. But if you do so, do not 
forget
+to specify a different branch for modules that should not use the global 
branch!
+
+
+
+
+
+
+Stopping the build early
+
+
+The build normally continues even if failures occur
+
+ normally will update, build and install all modules
+in the specified list of modules to build, even if a module fails to build.
+This is usually a convenience to allow you to update software packages even
+if a simple mistake is made in one of the source repositories during
+development that causes the build to break.
+
+
+
+However you may wish for  to stop what it is doing once a
+module fails to build and install. This can help save you time that will be
+wasted trying to make progress when modules remaining in the build list will
+not be able to successfully build either, especially if you have not ever
+successfully built the modules in the list.
+
+
+
+
+
+Not stopping early with --no-stop-on-failure
+
+
+The primary method to do this is to use the
+--no-stop-on-failure
+command line option when you run .
+
+
+This option can also be set in the
+configuration file to make
+it the normal mode of operation.
+
+
+It is also possible to tell  at runtime to stop building
+after completing the current module it is working on.
+This is as opposed to interrupting  using a command like
+C, which interrupts
+ immediately, losing the progress of the current module.
+
+
+Interrupting  during a module install when
+the use-clean-install option
+is enabled will mean that the interrupted module will be unavailable until
+ is able to successfully build the module!
+
+If you need to interrupt  without permitting a graceful 
shutdown
+in this situation, at least try to avoid doing this while  is
+installing a module.
+
+
+
+
+
+Stopping  gracefully when stop-on-failure is false

[sdk/kdesrc-build] doc: doc: basic-features - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 097dee86e82f4d4c6adefea1884686475454f896 by Andrew Shark.
Committed on 05/01/2024 at 19:57.
Pushed by ashark into branch 'master'.

doc: basic-features - separate docbook

A  +209  -0doc/basic-features.docbook
M  +2-209  doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/097dee86e82f4d4c6adefea1884686475454f896

diff --git a/doc/basic-features.docbook b/doc/basic-features.docbook
new file mode 100644
index ..2331e2ab
--- /dev/null
+++ b/doc/basic-features.docbook
@@ -0,0 +1,209 @@
+
+Basic  features
+
+
+qt support
+ supports building the  toolkit used by  software
+as a convenience to users. This support is handled by a special module named
+qt.
+
+ is developed under a separate repository from  software
+located at http://code.qt.io/cgit/qt/;>http://code.qt.io/cgit/qt/.
+
+In order to build , you should make sure that the
+qtdir setting is set to the directory you'd
+like to install  to, as described in .
+
+You should then ensure that the qt module is added to
+your .kdesrc-buildrc, before any other modules in the
+file. If you are using the sample configuration file, you can simply
+uncomment the existing qt module entry.
+
+Now you should verify the repository option and branch options are set appropriately:
+
+
+The first option is to build  using a mirror maintained
+on the  source repositories (no other changes are applied, it is simply
+a clone of the official source). This is highly recommended due to occasional
+issues with cloning the full  module from its official repository.
+
+You can set the repository option for the qt
+module to kde:qt to use this option.
+
+
+Otherwise, to build the standard , set your
+repository option to
+git://gitorious.org/qt/qt.git. Note that you may
+experience problems performing the initial clone of  from this
+repository.
+
+
+In both cases, the branch option should be set to 
master (unless you'd
+like to build a different branch).
+
+
+
+
+Standard flags added by 
+Nota Bene: this section does not apply to modules for which you have
+configured a custom toolchain, using e.g.
+cmake-toolchain.
+
+To save you time,  adds some standard paths to your
+environment for you:
+
+
+
+
+The path to the  and  libraries is added to the
+LD_LIBRARY_PATH variable automatically. This means that you
+do not need to edit  to include them.
+
+
+
+The path to the  and  development support programs are added to the
+PATH variable automatically. This means that you do not need to
+edit  to include them.
+
+
+
+The path to the -provided pkg-config is added
+automatically to PKG_CONFIG_PATH. This means that you do not
+need to use  to add these.
+
+
+
+The setting for  is automatically propagated to the QTDIR
+environment variable while building.
+
+
+
+
+
+
+
+Changing 's build priority
+Programs can run with different priority levels on Operating Systems,
+including  and . This allows the system to allocate time for the
+different programs in accordance with how important they are.
+
+
+ will normally allocate itself a low priority so that the
+rest of the programs on your system are unaffected and can run normally.
+Using this technique,  will use extra CPU when it is available.
+
+
+ will still maintain a high enough priority level so that
+it runs before routine batch processes and before CPU donation programs
+such as http://setiathome.ssl.berkeley.edu/;>Seti@Home.
+
+
+To alter  so that it uses a higher (or lower) priority
+level permanently, then you need to adjust the  setting in the configuration file. The  setting
+controls how nice  is to other programs. In other
+words, having a higher  gives  a lower priority. So to
+give  a higher priority, reduce the  (and vice versa).
+The  can go from 0 (not nice at all, highest priority) to 20 (super
+nice, lowest priority).
+
+You can also temporarily change the priority for  by using
+the  command line option. The value to
+the option is used exactly the same as for .
+
+It is possible for some programs run by the super user to have a
+negative nice value, with a correspondingly even higher priority for such
+programs. Setting a negative (or even 0)  for  is not
+a great idea, as it will not help run time significantly, but will make your
+computer seem very sluggish should you still need to use it.
+
+
+
+To run  with a niceness of 15 (a lower priority than
+normal):
+
+
+ kdesrc-build 
--nice=15
+
+
+Or, you can edit the configuration 
file to make the change permanent:
+
+
+ 15
+
+
+
+
+The niceness option only affects the
+usage of the computer's processor(s). One other major affect on computer
+performance relates to how much data input or output (I/O) a
+program uses. In order to control how much I/O a program can
+use, modern  operating systems support a similar tool called
+ionice.  supports
+ionice, (but only to enable or disable it
+completely) using the use-idle-io-priority option,
+since  version 1.12.
+
+
+
+
+
+
+Installation as the superuser
+You may wish t

[sdk/kdesrc-build] doc: doc: appendix-profile - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 047ca98d497befc8ab630c0769b34f1d34803b87 by Andrew Shark.
Committed on 05/01/2024 at 19:57.
Pushed by ashark into branch 'master'.

doc: appendix-profile - separate docbook

A  +168  -0doc/appendix-profile.docbook
M  +2-168  doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/047ca98d497befc8ab630c0769b34f1d34803b87

diff --git a/doc/appendix-profile.docbook b/doc/appendix-profile.docbook
new file mode 100644
index ..a9293a92
--- /dev/null
+++ b/doc/appendix-profile.docbook
@@ -0,0 +1,168 @@
+
+Superseded profile setup procedures
+
+
+Setting up a  login profile
+
+These instructions cover how to setup the profile required to ensure your
+computer can login to your newly-built   desktop. 
+will normally try to do this automatically (see ). This appendix section can be useful for those who
+cannot use 's support for login profile setup. However the
+instructions may not always be up-to-date, it can also be useful to consult the
+kde-env-master.sh.in file included with the 
+source.
+
+
+Changing your startup profile settings
+
+The .bash_profile is the login settings
+file for the popular bash shell used by many 
+distributions. If you use a different shell, then you may need to adjust the
+samples given in this section for your particular shell.
+
+
+Open or create the .bash_profile file in the home 
directory with your favorite editor,
+and add to the end of the file:
+
+If you are building the qt module (you are by default), add instead:
+
+
+QTDIR=(path to qtdir)   # Such as ~/kdesrc/build/qt by default.
+PATH=${install-dir}/bin:$QTDIR/bin:$PATH
+MANPATH=$QTDIR/doc/man:$MANPATH
+
+# Act appropriately if LD_LIBRARY_PATH is not already set.
+if [ -z $LD_LIBRARY_PATH ]; then
+  LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib
+else
+  LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib:$LD_LIBRARY_PATH
+fi
+
+export QTDIR PATH MANPATH LD_LIBRARY_PATH
+
+
+or, if you are not building qt (and are using your system  instead), add
+this instead:
+
+
+PATH=${install-dir}/bin:$QTDIR/bin:$PATH
+
+# Act appropriately if LD_LIBRARY_PATH is not already set.
+if [ -z $LD_LIBRARY_PATH ]; then
+  LD_LIBRARY_PATH=${install-dir}/lib
+else
+  LD_LIBRARY_PATH=${install-dir}/lib:$LD_LIBRARY_PATH
+fi
+
+export PATH LD_LIBRARY_PATH
+
+
+
+
+If you are not using a dedicated user, set a different $KDEHOME
+for your new environment in your .bash_profile:
+
+
+export KDEHOME="${HOME}/.kde-git"
+
+# Create it if needed
+[ ! -e ~/.kde-git ]  mkdir ~/.kde-git
+
+
+
+
+
+If later your K Menu is empty or too crowded with applications from your
+distribution, you may have to set the XDG environment
+variables in your .bash_profile:
+
+
+XDG_CONFIG_DIRS="/etc/xdg"
+XDG_DATA_DIRS="${install-dir}/share:/usr/share"
+export XDG_CONFIG_DIRS XDG_DATA_DIRS
+
+
+
+
+
+
+
+Starting 
+
+
+Now that you have adjusted your environment settings to use the correct ,
+it is important to ensure that the correct startkde script
+is used as well.
+
+
+
+Open the .xinitrc text file from the home directory, or
+create it if necessary. Add the line:
+
+
+exec ${install-dir}/bin/startkde
+
+
+
+On some distributions, it may be necessary to perform the same
+steps with the .xsession file, also in the home directory.
+This is especially true when using graphical login managers such as
+sddm, gdm, or xdm.
+
+
+
+Now start your fresh : in  and  systems with virtual terminal 
support,
+F1 ... 
F12 keystroke 
combinations are used to switch to Virtual Console 1 through 12.
+This allows you to run more than one desktop environment at the same time. The 
fist six are
+text terminals and the following six are graphical displays.
+
+
+
+If when you start your computer you are presented to the graphical display
+manager instead, you can use the new  environment, even if it is not 
listed
+as an option. Most display managers, including sddm, have an option to use
+a Custom Session when you login. With this option, your session 
settings are
+loaded from the .xsession file in your home directory. If
+you have already modified this file as described above, this option should load
+you into your new  installation.
+
+
+If it does not, there is something else you can try that should normally
+work: Press F2,
+and you will be presented to a text terminal. Log in using the dedicated user
+and type:
+
+
+
+startx -- :1
+
+
+
+
+You can run the  from sources and the old  at the same time! Log in
+using your regular user, start the stable  desktop. Press F2 (or
+F1, F3, etc..), and you will be presented
+with a text terminal. Log in using the dedicated   user and
+type:
+
+
+startx -- :1
+
+
+You can go back to the  desktop of your regular user by pressing the
+shortcut key for the already running desktop. This is normally
+F7, you may 
need
+to use F6 or F8 instead. To return to your
+-compiled , you would use the same sequence, except with the
+next function key. For example, if you needed to enter F7
+to swit

[sdk/kdesrc-build] doc: doc: building-specific-modules - separate docbook

2024-01-05 Thread Andrew Shark
Git commit 70175b26036e7cd31776b4c8a45d49de2bd1abab by Andrew Shark.
Committed on 05/01/2024 at 19:58.
Pushed by ashark into branch 'master'.

doc: building-specific-modules - separate docbook

A  +62   -0doc/building-specific-modules.docbook
M  +2-62   doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/70175b26036e7cd31776b4c8a45d49de2bd1abab

diff --git a/doc/building-specific-modules.docbook 
b/doc/building-specific-modules.docbook
new file mode 100644
index ..d0e30a76
--- /dev/null
+++ b/doc/building-specific-modules.docbook
@@ -0,0 +1,62 @@
+
+Building specific modules
+
+Rather than building every module all the time, you may only want to 
build a single
+module, or other small subset.  Rather than editing your configuration 
file, you can simply
+pass the names of modules or module sets to build to the command 
line.
+
+
+Example output of a kdesrc-build specific module build
+
+ kdesrc-build 
--include-dependencies 
dolphin
+Updating kde-build-metadata (to branch master)
+Updating sysadmin-repo-metadata (to branch master)
+
+Building extra-cmake-modules from frameworks-set (1/79)
+Updating extra-cmake-modules (to branch master)
+No changes to extra-cmake-modules source, proceeding to build.
+Running cmake...
+Compiling... succeeded (after 0 seconds)
+Installing.. succeeded (after 0 seconds)
+
+Building phonon from phonon (2/79)
+Updating phonon (to branch master)
+No changes to phonon source, proceeding to build.
+Compiling... succeeded (after 0 seconds)
+Installing.. succeeded (after 0 seconds)
+
+Building attica from frameworks-set (3/79)
+Updating attica (to branch master)
+No changes to attica source, proceeding to build.
+Compiling... succeeded (after 0 seconds)
+Installing.. succeeded (after 0 seconds)
+
+...
+
+Building dolphin from base-apps (79/79)
+Updating dolphin (to branch master)
+No changes to dolphin source, proceeding to build.
+Compiling... succeeded (after 0 seconds)
+Installing.. succeeded (after 0 seconds)
+
+  PACKAGES SUCCESSFULLY BUILT  
+Built 79 modules
+
+Your logs are saved in /home/kde-src/kdesrc/log/2018-01-20-07
+
+
+
+In this case, although only the dolphin
+application was specified, the --include-dependencies flag
+caused  to include the dependencies listed for
+dolphin (by setting the include-dependencies option).
+
+
+The dependency resolution worked in this case only because
+dolphin happened to be specified in a
+kde-projects-based module set (in this example, named
+base-apps). See .
+
+
+
diff --git a/doc/index.docbook b/doc/index.docbook
index f7462149..55314add 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -72,6 +72,7 @@
   
   
   
+  
 ]>
 
 
@@ -544,68 +545,7 @@ which is described in .
 
 
 
-
-Building specific modules
-
-Rather than building every module all the time, you may only want to 
build a single
-module, or other small subset.  Rather than editing your configuration 
file, you can simply
-pass the names of modules or module sets to build to the command 
line.
-
-
-Example output of a kdesrc-build specific module build
-
- kdesrc-build 
--include-dependencies 
dolphin
-Updating kde-build-metadata (to branch master)
-Updating sysadmin-repo-metadata (to branch master)
-
-Building extra-cmake-modules from frameworks-set (1/79)
-Updating extra-cmake-modules (to branch master)
-No changes to extra-cmake-modules source, proceeding to build.
-Running cmake...
-Compiling... succeeded (after 0 seconds)
-Installing.. succeeded (after 0 seconds)
-
-Building phonon from phonon (2/79)
-Updating phonon (to branch master)
-No changes to phonon source, proceeding to build.
-Compiling... succeeded (after 0 seconds)
-Installing.. succeeded (after 0 seconds)
-
-Building attica from frameworks-set (3/79)
-Updating attica (to branch master)
-No changes to attica source, proceeding to build.
-Compiling... succeeded (after 0 seconds)
-Installing.. succeeded (after 0 seconds)
-
-...
-
-Building dolphin from base-apps (79/79)
-Updating dolphin (to branch master)
-No changes to dolphin source, proceeding to build.
-Compiling... succeeded (after 0 seconds)
-Installing.. succeeded (after 0 seconds)
-
-  PACKAGES SUCCESSFULLY BUILT  
-Built 79 modules
-
-Your logs are saved in /home/kde-src/kdesrc/log/2018-01-20-07
-
-
-
-In this case, although only the dolphin
-application was specified, the --include-dependencies flag
-caused  to include the dependencies listed for
-dolphin (by setting the include-dependencies option).
-
-
-The dependency resolution worked in this case only because
-dolphin happened to be specified in a
-kde-projects-based module set (in this example, named
-base-apps). See .
-
-
-
+
 
 
 Sett

[sdk/kdesrc-build] doc: doc: appendix-modules - separate docbook

2024-01-05 Thread Andrew Shark
Git commit b9d905dff7bf8aaa0d943d96bac2bf69494161fe by Andrew Shark.
Committed on 05/01/2024 at 19:56.
Pushed by ashark into branch 'master'.

doc: appendix-modules - separate docbook

A  +131  -0doc/appendix-modules.docbook
M  +2-131  doc/index.docbook

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

diff --git a/doc/appendix-modules.docbook b/doc/appendix-modules.docbook
new file mode 100644
index ..109f2daf
--- /dev/null
+++ b/doc/appendix-modules.docbook
@@ -0,0 +1,131 @@
+
+ modules and source code organization
+
+The Module
+
+ groups its software into modules of various size.
+This was initially a loose grouping of a few large modules, but with the
+introduction of the https://git-scm.com/;>Git-based https://commits.kde.org/;>source code repositories, these large
+modules were further split into many smaller modules.
+
+
+ uses this module concept as well. In essence, a
+module is a grouping of code that can be downloaded, built,
+tested, and installed.
+
+
+
+Individual modules
+
+It is easy to set  to build a single module. The following
+listing is an example of what a declaration for a Git-based module would
+look like in the configuration
+file.
+
+
+module kdefoo
+cmake-options 
-DCMAKE_BUILD_TYPE=Debug
+end module
+
+
+This is a Git-based module since it doesn't use a repository option. Also, the
+cmake-options option is listed as an example only, it is not
+required.
+
+
+
+Groups of related modules
+
+Now most  source modules are Git-based , and are normally
+combined into groups of modules.
+
+ therefore supports groups of modules as well, using
+module sets. An example:
+
+
+module-set base-modules
+repository kde-projects
+use-modules kde-runtime kde-workspace 
kde-baseapps
+end module-set
+
+
+You can leave the module set name 
(base-modules
+in this case) empty if you like. This repository setting tells
+ where to download the source from, but you can also use a
+git:// URL.
+
+One special feature of the repository
+kde-projects is that  will
+automatically include any Git modules that are grouped under the modules you
+list (in the KDE Project database).
+
+
+
+Module branch groups
+
+Taking the concept of a group of
+modules further, the  developers eventually found that
+synchronizing the names of the Git branches across a large number of
+repositories was getting difficult, especially during the development push for
+the new  Frameworks for  5.
+
+
+So the concept of branch groups was developed, to allow
+users and developers to select one of only a few groups, and allow the script
+to automatically select the appropriate Git branch.
+
+
+ supports this feature as of version 1.16-pre2, via the
+branch-group option.
+
+
+
+Example of using branch-group
+
+branch-group can be used in the configuration file as follows:
+
+
+
+global
+# Select KDE Frameworks 5 and other Qt5-based apps
+branch-group kf5-qt5
+
+# Other global options here ...
+end global
+
+module-set
+# branch-group only works for kde-projects
+repository kde-projects
+
+# branch-group is inherited from the one set globally, but could
+# specified here.
+
+use-modules kdelibs 
kde-workspace
+end module-set
+
+# kdelibs's branch will be "frameworks"
+# kde-workspace's branch will be "master" (as of August 2013)
+
+
+In this case the same branch-group gives different
+branch names for each Git module.
+
+
+
+This feature requires some data maintained by the  developers in a 
Git
+repository named kde-build-metadata, however this module
+will be included automatically by  (though you may see it appear
+in the script output).
+
+
+ modules that do not have a set branch name for the branch
+group you choose will default to an appropriate branch name, as if you had not
+specified branch-group at all.
+
+
+
+
+
+
diff --git a/doc/index.docbook b/doc/index.docbook
index 228b67bb..db3eddcf 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -68,6 +68,7 @@
Just add them as necessary.
   -->
   
+  
 ]>
 
 
@@ -4388,137 +4389,7 @@ as of  version 1.6.3.
 
 
 
-
- modules and source code organization
-
-The Module
-
- groups its software into modules of various size.
-This was initially a loose grouping of a few large modules, but with the
-introduction of the https://git-scm.com/;>Git-based https://commits.kde.org/;>source code repositories, these large
-modules were further split into many smaller modules.
-
-
- uses this module concept as well. In essence, a
-module is a grouping of code that can be downloaded, built,
-tested, and installed.
-
-
-
-Individual modules
-
-It is easy to set  to build a single module. The following
-listing is an example of what a declaration for a Git-based module would
-look like in the configuration
-file.
-
-
-module kdefoo
-cmake-options 
-DCMAKE_BUILD_TYPE=Debug
-end module
-
-
-This is a Git-based module since it doesn't use a repos

[sdk/kdesrc-build] /: Rename option "kdedir" to "install-dir"

2024-01-03 Thread Andrew Shark
Git commit e5c028cd18fa9f5e508e7b88d64033880eca7fa6 by Andrew Shark.
Committed on 03/01/2024 at 19:43.
Pushed by ashark into branch 'master'.

Rename option "kdedir" to "install-dir"

The kdedir is ambiguous, it is not clear if it is source, build or install dir.

The kdedir naming dates back to the 2003 era when you had to define KDEDIR to 
define where KDE 3 was installed, just as QTDIR was used to define the location 
of the Qt 3 install.

mpyne later added prefix for non-KDE modules and should have switched things 
over afterwards but never got around to it.

By KDE SC 5 the requirement to use KDEDIR (or as it was by then, KDEDIRS) was 
dropped in favor of searching PATH.

See 
https://invent.kde.org/sdk/kdesrc-build/-/commit/2f7b9477b7d44a2f88c148846c8f80f6921fd4ef#note_839381

M  +2-2data/build-include/custom-qt5-libs.ksb
M  +4-4data/build-include/custom-qt6-libs.ksb
M  +1-1data/kde-env-master.sh.in
M  +1-1data/kdesrc-buildrc.in
M  +21   -30   doc/index.docbook
M  +2-2doc/man-kdesrc-build.1.docbook
M  +1-1doc/source-reference/ksb/Module.adoc
M  +2-2modules/ksb/Application.pm
M  +2-2modules/ksb/BuildContext.pm
M  +1-1modules/ksb/BuildSystem/KDECMake.pm
M  +1-1modules/ksb/Cmdline.pm
M  +2-2modules/ksb/FirstRun.pm
M  +5-5modules/ksb/Module.pm
M  +4-4t/unit/build-environment/platform-env-prepend.t
M  +1-1vim/syntax/kdesrc-buildrc.vim

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

diff --git a/data/build-include/custom-qt5-libs.ksb 
b/data/build-include/custom-qt5-libs.ksb
index 74a16b0e..114077b7 100644
--- a/data/build-include/custom-qt5-libs.ksb
+++ b/data/build-include/custom-qt5-libs.ksb
@@ -38,12 +38,12 @@ end module
 
 module libaccounts-qt
   repository https://gitlab.com/accounts-sso/libaccounts-qt.git
-  qmake-options PREFIX=${kdedir}
+  qmake-options PREFIX=${install-dir}
 end module
 
 module signond
   repository https://gitlab.com/accounts-sso/signond.git
-  qmake-options PREFIX=${kdedir}
+  qmake-options PREFIX=${install-dir}
 end module
 
 # For apper
diff --git a/data/build-include/custom-qt6-libs.ksb 
b/data/build-include/custom-qt6-libs.ksb
index 02ea74e5..1bac5d50 100644
--- a/data/build-include/custom-qt6-libs.ksb
+++ b/data/build-include/custom-qt6-libs.ksb
@@ -27,7 +27,7 @@ end module
 module libaccounts-qt
   repository https://gitlab.com/nicolasfella/libaccounts-qt.git
   branch qt6
-  qmake-options PREFIX=${kdedir}
+  qmake-options PREFIX=${install-dir}
   override-build-system qmake6
 end module
 
@@ -35,7 +35,7 @@ end module
 module signond
   repository https://gitlab.com/nicolasfella/signond.git
   branch qt6
-  qmake-options PREFIX=${kdedir} CONFIG+=no_etc
+  qmake-options PREFIX=${install-dir} CONFIG+=no_etc
   override-build-system qmake6
 end module
 
@@ -50,7 +50,7 @@ end module
 module libsignon-glib
   # this one does depend on qt, it seems
   repository https://gitlab.com/accounts-sso/libsignon-glib.git
-  qmake-options PREFIX=${kdedir}
+  qmake-options PREFIX=${install-dir}
 end module
 
 # Mandatory for krita
@@ -112,7 +112,7 @@ end module
 module appstream
   repository https://github.com/ximion/appstream
   configure-flags -Dqt=true
-  set-env LDFLAGS -Wl,-rpath=${kdedir}/${libname}
+  set-env LDFLAGS -Wl,-rpath=${install-dir}/${libname}
   branch main
 end module
 
diff --git a/data/kde-env-master.sh.in b/data/kde-env-master.sh.in
index db0ee225..df107888 100644
--- a/data/kde-env-master.sh.in
+++ b/data/kde-env-master.sh.in
@@ -28,7 +28,7 @@ export XDG_CONFIG_HOME
 # be executable by testsuite. It is filtered from destination. # kdesrc-build: 
filter
 if ! test -n "$KDESRC_BUILD_TESTING"; then # kdesrc-build: 
filter
 # Where KDE libraries and applications are installed to.
-kde_prefix="<% kdedir %>"  # E.g. "$HOME/kf5"
+kde_prefix="<% install-dir %>"  # E.g. "$HOME/kf5"
 
 # Where Qt is installed to. If using the system Qt, leave blank and this script
 # will try to auto-detect.
diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in
index 228475ab..72eef3af 100644
--- a/data/kdesrc-buildrc.in
+++ b/data/kdesrc-buildrc.in
@@ -12,7 +12,7 @@ global
 include-dependencies %{include-dependencies}
 
 # Install directory for KDE software
-kdedir %{kdedir}
+install-dir %{install-dir}
 
 # Directory for downloaded source code
 source-dir %{source-dir}
diff --git a/doc/index.docbook b/doc/index.docbook
index 058937d4..55e0c874 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -38,7 +38,7 @@
   -->
 
   configure-flags'>
-  kdedir'>
+  install-dir'>
   qtdir'>
   build-dir'>
   source-dir'>
@@ -452,7 +452,7 @@ The default settings should be appropriate to perform a
 
 
 
-kdedir, which changes the
+install-dir, which 
changes the
 destination directory 

[sdk/kdesrc-build] /: Add --dependency-tree-fullpath option

2023-12-28 Thread Andrew Shark
Git commit 42483187d75c2787f6c627d6ed1f84e0529a9b6f by Andrew Shark.
Committed on 28/12/2023 at 10:43.
Pushed by ashark into branch 'master'.

Add --dependency-tree-fullpath option

This option will do similar thing as --dependency-tree, but will print the full 
path on the line of each tree entry.

This may be convenient when you want to grep something from the printed tree, 
but want to still be able to see the paths.

M  +1-0completions/zsh/_kdesrc-build
M  +11   -0doc/index.docbook
M  +37   -2modules/ksb/Application.pm
M  +1-0modules/ksb/Cmdline.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/42483187d75c2787f6c627d6ed1f84e0529a9b6f

diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build
index ca79d62e..e8ad66ea 100644
--- a/completions/zsh/_kdesrc-build
+++ b/completions/zsh/_kdesrc-build
@@ -14,6 +14,7 @@ _arguments \
   '(--pretend -p)'{--pretend,-p}"[Don't actually take major actions, instead 
describe what would be done]" \
   '--list-build[List what modules would be built in the order in which they 
would be built]' \
   '--dependency-tree[Print out dependency information on the modules that 
would be built, using a `tree` format]' \
+  '--dependency-tree-fullpath[Print out dependency information on the modules 
that would be built, using a `fullpath` format]' \
   '(--src-only --no-src)'{--src-only,--no-src}'[Only perform/Skip update 
source code]' \
   '--refresh-build[Start the build from scratch]' \
   '--rc-file=[Read configuration from filename instead of default]:::_files' \
diff --git a/doc/index.docbook b/doc/index.docbook
index 6a4a383d..058937d4 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -3795,6 +3795,17 @@ If this file doesn't exist, 
~/.config/kdesrc-buildrc
 
 
 
+
+--dependency-tree-fullpath
+
+
+Prints out dependency information on the modules that would be built using 
a tree
+format (recursive). In fullpath format. Note: the generated
+output may become quite large for applications with many dependencies.
+
+
+
+
 
 --run
 
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 75c7da81..fa6cdaf1 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -185,6 +185,33 @@ sub _yieldModuleDependencyTreeEntry
 $context->{report}($connector . $currentItem . ' ' . $statusInfo);
 }
 
+sub _yieldModuleDependencyTreeEntry_FullPath
+{
+my ($nodeInfo, $module, $context) = @_;
+
+my $depth = $nodeInfo->{depth};
+my $currentItem = $nodeInfo->{currentItem};
+
+my $connectorStack = $context->{stack};
+
+my $prefix = pop(@$connectorStack);
+
+while($context->{depth} > $depth) {
+$prefix = pop(@$connectorStack);
+--($context->{depth});
+}
+
+push(@$connectorStack, $prefix);
+
+my $connector;
+
+$connector = $prefix;
+push(@$connectorStack, $prefix . $currentItem . "/");
+
+$context->{depth} = $depth + 1;
+$context->{report}($connector . $currentItem);
+}
+
 # Generates the build context and module list based on the command line options
 # and module selectors provided, resolves dependencies on those modules if 
needed,
 # filters out ignored or skipped modules, and sets up the module factory.
@@ -364,7 +391,7 @@ EOF
 croak_runtime("Failed to resolve dependency graph");
 }
 
-if (exists $cmdlineGlobalOptions->{'dependency-tree'}) {
+if (exists $cmdlineGlobalOptions->{'dependency-tree'} || exists 
$cmdlineGlobalOptions->{'dependency-tree-fullpath'}) {
 my $depTreeCtx = {
 stack => [''],
 depth => 0,
@@ -372,9 +399,17 @@ EOF
 print(@_, "\n");
 }
 };
+
+my $callback;
+if (exists $cmdlineGlobalOptions->{'dependency-tree'}) {
+$callback = \&_yieldModuleDependencyTreeEntry;
+} else {
+$callback = \&_yieldModuleDependencyTreeEntry_FullPath;
+}
+
 ksb::DependencyResolver::walkModuleDependencyTrees(
 $moduleGraph->{graph},
-\&_yieldModuleDependencyTreeEntry,
+$callback,
 $depTreeCtx,
 @modules
 );
diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm
index 2a8bc44c..fff3ecda 100644
--- a/modules/ksb/Cmdline.pm
+++ b/modules/ksb/Cmdline.pm
@@ -441,6 +441,7 @@ sub _supportedOptions
 'colorful-output|color!',
 'debug',
 'dependency-tree',
+'dependency-tree-fullpath',
 'help|h',
 'ignore-modules|!=s{,}',
 'd', # --include-dependencies, which is already pulled in via 
ksb::BuildContext::defaultGlobalFlags


[sdk/kdesrc-build] /: Move xsession.sh and kde-env-master.sh templates to data

2023-12-12 Thread Andrew Shark
Git commit beffd6a8d7250ffab6307bf1492c6ef751bbd3bb by Andrew Shark.
Committed on 12/12/2023 at 11:04.
Pushed by ashark into branch 'master'.

Move xsession.sh and kde-env-master.sh templates to data

M  +2-2CMakeLists.txt
R  +0-0data/kde-env-master.sh.in [from: sample-kde-env-master.sh - 100% 
similarity]
R  +0-0data/xsession.sh.in [from: sample-xsession.sh - 100% similarity]
M  +2-2doc/index.docbook
M  +2-2modules/ksb/Application.pm

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

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 81097ec8..dd8db97b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,8 +48,8 @@ install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kdesrc-build 
DESTINATION ${KDE_INST
 install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kdesrc-run DESTINATION 
${KDE_INSTALL_BINDIR})
 
 install(PROGRAMS
-${CMAKE_SOURCE_DIR}/sample-kde-env-master.sh
-${CMAKE_SOURCE_DIR}/sample-xsession.sh
+${CMAKE_SOURCE_DIR}/data/kde-env-master.sh.in
+${CMAKE_SOURCE_DIR}/data/xsession.sh.in
 ${CMAKE_SOURCE_DIR}/data/build-include/custom-qt5-libs.ksb
 ${CMAKE_SOURCE_DIR}/data/build-include/qt5.ksb
 ${CMAKE_SOURCE_DIR}/data/build-include/kf5-applications.ksb
diff --git a/sample-kde-env-master.sh b/data/kde-env-master.sh.in
similarity index 100%
rename from sample-kde-env-master.sh
rename to data/kde-env-master.sh.in
diff --git a/sample-xsession.sh b/data/xsession.sh.in
similarity index 100%
rename from sample-xsession.sh
rename to data/xsession.sh.in
diff --git a/doc/index.docbook b/doc/index.docbook
index b4c2937a..6a4a383d 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -857,7 +857,7 @@ instructions have been moved to an appendix ().
 
 If you intend to setup your own login support you can consult that
-appendix or view the sample-kde-env-master.sh file
+appendix or view the kde-env-master.sh.in file
 included with the  source.
 
 
@@ -4940,7 +4940,7 @@ will normally try to do this automatically (see ). This appendix section can be useful for those who
 cannot use 's support for login profile setup. However the
 instructions may not always be up-to-date, it can also be useful to consult the
-kde-env-master.sh file included with the 
+kde-env-master.sh.in file included with the 
 source.
 
 
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 1fe20e32..a4b895a6 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -1771,10 +1771,10 @@ sub _installCustomSessionDriver
 s{//+}{/}g foreach @searchPaths; # Remove duplicate slashes
 
 my $envScript = first { -f $_ } (
-map { "$_/sample-kde-env-master.sh" } @searchPaths
+map { "$_/data/kde-env-master.sh.in" } @searchPaths
 );
 my $sessionScript = first { -f $_ } (
-map { "$_/sample-xsession.sh" } @searchPaths
+map { "$_/data/xsession.sh.in" } @searchPaths
 );
 
 if (!$envScript || !$sessionScript) {


[sdk/kdesrc-build] doc: Move the module-set scope options to their table

2023-12-12 Thread Andrew Shark
Git commit 4ef24d2f1150cb209f9d9c97cfef415f7dd0f69d by Andrew Shark.
Committed on 12/12/2023 at 10:53.
Pushed by ashark into branch 'master'.

Move the module-set scope options to their table

M  +93   -90   doc/index.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/4ef24d2f1150cb209f9d9c97cfef415f7dd0f69d

diff --git a/doc/index.docbook b/doc/index.docbook
index cd8e9043..b4c2937a 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -1836,95 +1836,6 @@ protocol is most efficient.
 
 
 
-
-git-repository-base
-
-
-TypeString
-Available since1.12.1
-
-This option is used to create a short
-name to reference a specific Git repository base URL in later module set declarations, which is useful for
-quickly declaring many Git modules to build.
-
-You must specify two things (separated by a space): The name to assign
-to the base URL, and the actual base URL itself. For example:
-
-
-
-global
-# other options
-# This is the common path to all anonymous Git server modules.
-git-repository-base kde-git 
kde:
-end global
-
-# Module declarations
-
-module-set
-# Now you can use the alias you defined earlier, but 
only in a module-set.
-repository kde-git
-use-modules 
module1.git module2.git
-end module-set
-
-
-
-The module-set's use-modules option created two 
modules
-internally, with  behaving as if it had read:
-
-
-module module1
-repository kde:module1.git
-end module
-
-module module2
-repository kde:module2.git
-end module
-
-
-The kde:  repository prefix used above is a
-shortcut which will be setup by  automatically. See the TechBase
-https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL
-Renaming article for more information. Note that unlike most other
-options, this option can be specified multiple times in order to create as
-many aliases as necessary.
-
-It is not required to use this option to take advantage of 
module-set,
-this option exists to make it easy to use the same repository across many
-different module sets.
-
-
-
-
-ignore-modules
-
-
-TypeString
-Available since1.16
-
-Modules named by this option, which would be chosen by 
-due to a use-modules option, are
-instead skipped entirely. Use this option when you want to build an entire
-kde-projects project grouping
-except for some specific modules.
-
-The option value does not necessarily have to name the module directly.
-Any module that has full consecutive parts of its  projects module path match one
-of the option values will be ignored, so you can ignore multiple modules this
-way.
-
-For example, an option value of libs would
-result in both kde/kdegraphics/libs and
-playground/libs being excluded (though not
-kde/kdelibs since the full part kdelibs is what
-is compared).
-
-See also .
-
-
-
 
 install-environment-driver
 
@@ -3034,7 +2945,7 @@ installations. However this only works on build systems 
that support
 
 
 
-Module-set scope only options
+Module-set and global scope options
 
 
 
@@ -3045,6 +2956,97 @@ installations. However this only works on build systems 
that support
 
 
 
+
+git-repository-base
+
+
+TypeString
+Available since1.12.1
+
+This option is used to create a short
+name to reference a specific Git repository base URL in later module set declarations, which is useful for
+quickly declaring many Git modules to build.
+
+You must specify two things (separated by a space): The name to assign
+to the base URL, and the actual base URL itself. For example:
+
+
+
+global
+# other options
+# This is the common path to all anonymous Git server modules.
+git-repository-base kde-git 
kde:
+end global
+
+# Module declarations
+
+module-set
+# Now you can use the alias you defined earlier, but 
only in a module-set.
+repository kde-git
+use-modules 
module1.git module2.git
+end module-set
+
+
+
+The module-set's use-modules option created two 
modules
+internally, with  behaving as if it had read:
+
+
+module module1
+repository kde:module1.git
+end module
+
+module module2
+repository kde:module2.git
+end module
+
+
+The kde:  repository prefix used above is a
+shortcut which will be setup by  automatically. See the TechBase
+https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL
+Renaming article for more information. Note that unlike most other
+options, this option can be specified multiple times in order to create as
+many aliases as necessary.
+
+It is not required to use this option to take advantage of 
module-set,
+this option exists to make it easy to use the same repository across many
+different module sets.
+
+
+
+
+ignore-modules
+
+
+TypeString
+Available since1.16
+
+Currently can only be used in module-set, see https://bugs.kde.org/show_bug.cgi?id=472917;>Bug 472917.
+Modules named by this option, which would be chosen by 
+due to a use-modules option, are
+instead skipped entirely. Use this option when you want to build an entire
+kde-projects project grouping
+except for some

[sdk/kdesrc-build] /: Add "generate-vscode-project-config" option

2023-12-02 Thread Andrew Shark
Git commit 1d9b2355c10db4d8825cefe06c73b07d0b4f4373 by Andrew Shark, on behalf 
of Kristen McWilliam.
Committed on 02/12/2023 at 17:16.
Pushed by ashark into branch 'master'.

Add "generate-vscode-project-config" option

This change adds `generate-vscode-project-config` option for `kdesrc-buildrc`
and the corresponding command line flag.

When set to `true`, kdesrc-build will create the `.vscode` folder
in the module source directory with configuration that makes VSCode to work
properly with KDE projects, such as setting the correct build
directory & enabling support for C++, CMake, LSP & IntelliSense.

The process specifically checks for an existing `.vscode` folder,
in case the user already has custom settings present - and only
proceeds if it does not exist yet.

Closes #84

M  +2-0completions/zsh/_kdesrc-build
M  +4-0data/kdesrc-buildrc.in
A  +17   -0data/vscode/c_cpp_properties.json.in
A  +9-0data/vscode/extensions.json.in
A  +22   -0data/vscode/launch.json.in
A  +15   -0data/vscode/settings.json.in
M  +35   -0doc/index.docbook
M  +16   -15   modules/ksb/BuildContext.pm
M  +98   -0modules/ksb/BuildSystem/KDECMake.pm
M  +1-0modules/ksb/FirstRun.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/1d9b2355c10db4d8825cefe06c73b07d0b4f4373

diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build
index f9b3d7ec..ca79d62e 100644
--- a/completions/zsh/_kdesrc-build
+++ b/completions/zsh/_kdesrc-build
@@ -39,5 +39,7 @@ _arguments \
   '--rebuild-failures[Only those modules which failed to build on a previous 
run.]' \
   '--force-build[Disable skipping the build process.]' \
   '--resume[Resum after a build failure]' \
+  '--generate-vscode-project-config[Generate a vscode project config]' \
+  '(--generate-vscode-project-config 
--no-generate-vscode-project-config)'{--generate-vscode-project-config,--no-generate-vscode-project-config}'[Generate
 a vscode project config]' \
   \
   '*:: :_kdesrc-build_modules'
diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in
index d3fb6171..cec49d4f 100644
--- a/data/kdesrc-buildrc.in
+++ b/data/kdesrc-buildrc.in
@@ -58,6 +58,10 @@ global
 # Build with LSP support for everything that supports it
 compile-commands-linking %{compile-commands-linking}
 compile-commands-export %{compile-commands-export}
+
+# Generate .vscode config files in project directories
+# Enable this if you want to use Visual Studio Code for development
+generate-vscode-project-config %{generate-vscode-project-config}
 end global
 
 # With base options set, the remainder of the file is used to define modules 
to build, in the
diff --git a/data/vscode/c_cpp_properties.json.in 
b/data/vscode/c_cpp_properties.json.in
new file mode 100644
index ..92b17fad
--- /dev/null
+++ b/data/vscode/c_cpp_properties.json.in
@@ -0,0 +1,17 @@
+{
+"configurations": [
+{
+"name": "Linux",
+"includePath": [
+"${workspaceFolder}/**"
+],
+"defines": [],
+"compilerPath": "/usr/bin/gcc",
+"cStandard": "c17",
+"cppStandard": "c++17",
+"intelliSenseMode": "${default}",
+"compileCommands": "${workspaceFolder}/compile_commands.json"
+}
+],
+"version": 4
+}
\ No newline at end of file
diff --git a/data/vscode/extensions.json.in b/data/vscode/extensions.json.in
new file mode 100644
index ..07ce6504
--- /dev/null
+++ b/data/vscode/extensions.json.in
@@ -0,0 +1,9 @@
+{
+"recommendations": [
+"ms-vscode.cpptools-extension-pack", // C/C++ debugging
+"llvm-vs-code-extensions.vscode-clangd", // C/C++ LSP
+"tonka3000.qtvsctools", // Qt
+"bbenoist.QML", // QML
+"deerawan.vscode-dash", // Docs
+]
+}
\ No newline at end of file
diff --git a/data/vscode/launch.json.in b/data/vscode/launch.json.in
new file mode 100644
index ..02ea5709
--- /dev/null
+++ b/data/vscode/launch.json.in
@@ -0,0 +1,22 @@
+{
+"version": "0.2.0",
+"configurations": [
+{
+"name": "Debug",
+"type": "cppdbg",
+"request": "launch",
+"program": "${command:cmake.launchTargetPath}",
+"args": [],
+"stopAtEntry": false,
+"cwd": "${workspaceFolder}",
+"MIMode": "gdb",
+"setupCommands": [
+{
+"description": "Enable pretty-printing for gdb",
+   

[sdk/kdesrc-build] doc: Add specification for configuration options

2023-11-29 Thread Andrew Shark
Git commit d9a2fb130cd9a096df5bc6ea182e36a66d814b9d by Andrew Shark.
Committed on 29/11/2023 at 14:06.
Pushed by ngraham into branch 'master'.

Add specification for configuration options

M  +419  -258  doc/index.docbook

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

diff --git a/doc/index.docbook b/doc/index.docbook
index 6c4312ff..fe8b8248 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -1759,53 +1759,67 @@ option.
 
 
 Global scope only options
-
+
 
 
 
-Option-name
-Module - Global Behavior
-Notes
+Option name
+Description
 
 
 
 
 
 async
-Cannot be overridden
-This option enables the asynchronous mode of operation, where the 
source
+
+
+TypeBoolean
+Default valueTrue
+Available since1.6
+
+This option enables the asynchronous mode of operation, where the source
 code update and the build process will be performed in parallel, instead of 
waiting for
-all of the source code updates before starting the build process.  This option 
defaults
-to enabling asynchronous mode.  To disable, set this option to 
false
-This option is available since the 1.6 release.
+all of the source code updates before starting the build 
process.
 
 
 
 colorful-output
-Cannot be overridden
-Set this option to false to disable the colorful 
output of .
-This option defaults to true. Note that 
 will not output the
+
+TypeBoolean
+Default valueTrue
+Set this option to false to disable 
the colorful output of .
+Note that  will not output the
 color codes to anything but a terminal (such as xterm, , or the normal
- console).
+ console).
 
 
 
 
 disable-agent-check
-Cannot be overridden
-Normally if you are using  to download the  sources
-(such as if you are using the git+ssh protocol),  will try and
+
+
+TypeBoolean
+Default valueFalse
+
+If you are using  to download the  sources
+(such as if you are using the git+ssh protocol), this option controls if 
 will try and
 make sure that if you are using ssh-agent, it is actually managing some 
 identities. This is to try and prevent  from asking for your pass phrase
-for every module. You can disable this check by setting
-disable-agent-check to true.
+for every module.
 
 
 
 
 git-desired-protocol
-Cannot be overridden
-This option only applies to modules from a 
+
+TypeString
+Default valuegit
+History informationThis option was added in 
 1.16. Prior to 20.06 this option
+was used to configure the fetch URL instead of the push URL. As of 20.06
+https is always used when updating KDE projects.
+
+This option only applies to modules from a  project repository.
 
 What this option actually does is configure which network protocol to
@@ -1826,16 +1840,17 @@ needed for network traffic.
 In any other situation you should not set this option as the default
 protocol is most efficient.
 
-This option was added in  1.16. Prior to 20.06 this option
-was used to configure the fetch URL instead of the push URL. As of 20.06
-https is always used when updating KDE projects.
 
 
 
 
 git-repository-base
-Cannot be overridden
-This option, added in version 1.12.1, is used to create a short
+
+
+TypeString
+Available since1.12.1
+
+This option is used to create a short
 name to reference a specific Git repository base URL in later module set declarations, which is useful for
 quickly declaring many Git modules to build.
@@ -1844,26 +1859,21 @@ quickly declaring many Git modules to build.
 to the base URL, and the actual base URL itself. For example:
 
 
-
 
 global
-# other options
-
-# This is the common path to all anonymous Git server modules.
-git-repository-base kde-git 
kde:
+# other options
+# This is the common path to all anonymous Git server modules.
+git-repository-base kde-git 
kde:
 end global
 
 # Module declarations
 
 module-set
-# Now you can use the alias you defined earlier, but only
-# in a module-set.
-repository kde-git
-
-use-modules 
module1.git module2.git
+# Now you can use the alias you defined earlier, but 
only in a module-set.
+repository kde-git
+use-modules 
module1.git module2.git
 end module-set
 
-
 
 
 The module-set's use-modules option created two 
modules
@@ -1871,11 +1881,11 @@ internally, with  behaving as if it had 
read:
 
 
 module module1
-repository kde:module1.git
+repository kde:module1.git
 end module
 
 module module2
-repository kde:module2.git
+repository kde:module2.git
 end module
 
 
@@ -1895,8 +1905,12 @@ different module sets.
 
 
 ignore-modules
-Can't be overridden
-Modules named by this option, which would be chosen by 

+
+
+TypeString
+Available since1.16
+
+Modules named by this option, which would be chosen by 
 due to a use-modules option, are
 instead skipped entirely. Use this option when you want to build an entire
 kde-projects project grouping
@@ -1915,15 +1929,18 @@ result in both kde/kdegraphics/libs and
 is compared).
 
 See also .
-
-This option was introduced with  1.16.
 
 
 
 
 install-environment-driver
-Cannot be overridden

[sdk/kdesrc-build] /: Remove unused option kde-languages

2023-11-16 Thread Andrew Shark
Git commit aec5f8b9c19bed58a633f9fb2c72392c0a70cf68 by Andrew Shark.
Committed on 16/11/2023 at 15:03.
Pushed by ngraham into branch 'master'.

Remove unused option kde-languages

M  +0-24   doc/index.docbook
M  +0-1modules/ksb/BuildContext.pm
M  +2-2vim/syntax/kdesrc-buildrc.vim

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

diff --git a/doc/index.docbook b/doc/index.docbook
index 1ade05f5..d39ec95c 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -2487,30 +2487,6 @@ change this to a directory needing root access, you may 
want to read about the
 well.
 
 
-
-kde-languages
-Cannot be overridden
-This option allows you to choose to download and install
-localization packages along with . You might do this if you do not live in
-the United States and would like to use  translated into your native
-language.
-
-To use this option, set it to a space-separated list of languages to
-install. Each language has a language code associated with it, which you
-can look up at this page: http://l10n.kde.org/teams-list.php;>http://l10n.kde.org/teams-list.php.
-
-
-It is alright to choose only one language. By default, none are
-downloaded, which means  will display in American English.
-
-For instance, to choose to install French, you would set the option to
-something like: kde-languages
-fr.  You would still need to use
- in order to choose the French language, however.
-
-
-
 
 libname
 Module setting overrides global
diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm
index 12edbd72..d2a0cc6e 100644
--- a/modules/ksb/BuildContext.pm
+++ b/modules/ksb/BuildContext.pm
@@ -161,7 +161,6 @@ our %defaultGlobalOptions = (
 "do-not-compile"   => "",
 "http-proxy"   => '', # Proxy server to use for HTTP.
 "kdedir"   => "$ENV{HOME}/kde",
-"kde-languages"=> "",
 "libname"  => $libname,
 "libpath"  => "",
 "log-dir"  => "log",
diff --git a/vim/syntax/kdesrc-buildrc.vim b/vim/syntax/kdesrc-buildrc.vim
index 297fcd76..e60c4731 100644
--- a/vim/syntax/kdesrc-buildrc.vim
+++ b/vim/syntax/kdesrc-buildrc.vim
@@ -46,14 +46,14 @@ syn keyword ksbrcOption contained skipwhite 
nextgroup=ksbrcStringValue
 
 syn keyword ksbrcGlobalOption contained skipwhite nextgroup=ksbrcStringValue
 \ branch-group git-desired-protocol git-repository-base http-proxy
-\ kde-languages niceness debug-level persistent-data-file set-env
+\ niceness debug-level persistent-data-file set-env
 \ num-cores num-cores-low-mem
 
 " MUST BE CONSISTENT WITH ABOVE. Used when a module-set option is used in the
 " wrong spot to highlight the error.
 syn keyword ksbrcErrorGlobalOption contained skipwhite 
nextgroup=ksbrcStringValue
 \ branch-group git-desired-protocol git-repository-base http-proxy
-\ kde-languages niceness debug-level persistent-data-file set-env
+\ niceness debug-level persistent-data-file set-env
 \ num-cores num-cores-low-mem
 
 syn keyword ksbrcModuleSetOption contained skipwhite nextgroup=ksbrcStringValue


  1   2   >