Hi Janek,
Where do I find these scripts?
tde-packaging/debian/_buildscripts/local
Here: https://mirror.git.trinitydesktop.org/gitea/TDE/tde-packaging/src/branch/mas... The readme.txt files contains all the instructions for setup and usage. Unless you intend to become a TDE core dev and work on both master and r14.1.x all the time, I recommend you don't use "worktrees". I have updated my scripts yesterday to support the latest distros and TDE code structure. If you run into any issue with the scripts, drop me a message. The script also provide a mechanism to add local patches before the build, see the "hook" mechanism in the instructions.
I think I didn't fully understand what you refer to as "clean environment"? And also "local builds" - what builds would not be local?
There are two main ways of working: 1. locally in your computer Here you build packages in your environment, so you don't have to wait for dependencies to be downloaded and the build is quicker. This is ideal for prototyping, testing, debugging and so on. Depending on what you are working on, occasionally you may end up with weird results, but 99.5% of the time you will be fine. Recommended workflow (refer to readme.txt file): - ./build_module.sh -g -po <module name> --> prepare the code in a build folder - switch to the created build folder for the module - debian/rules clean, followed by debian/rules binary --> builds all the debian binary packages, locally - for specific subpart of big modules (like tdelibs, tdebase, ...) you can "cd obj..." and then use specific ninja targets for partial builds.
2. build in clean environment This is how official debian packages are built. Each module is build in a minimal build environment and only the specified dependencies are imported. This helps identifying missing dependencies and prevents contamination from other locally installed packages. Local builds are open to such errors, so a locally built package may build and work fine on the system where it was built, but could fail when distributed to other people. That is why a clean environment build is so important for any distro.
I have quite a powerful PC, so I am OK with compiling everything, provided further rebuilds only recompile the necessary bits and are thus faster.
If you build locally, you can just build a single module, provided the required dependencies are installed. If you build in a clean environment, you need to build all modules once (at least the "base" modules) and then keep the build updated as changes are merged into the code. I used to do it all the time, but I later moved to PTB and often build locally or on a partially outdated clean build. I do a full rebuild once a month to update the build environment for clean packages.
There is one thing I have been wanting to add to those scripts for a while, that is the ability to build a single module in a clean environment while using the dependency from the PSB/PTB repos.
This is not yet in the scripts.