Web lists-archives.com

Re: How to kdesrc-build a specific release?

On Tue, Dec 25, 2018 at 01:30:02PM +0800, Jonathan Schultz wrote:
> I have a quick question about kdesrc-build. Can I use it to build a
> specific KDE release/tag, or at least a consistent stable release? The
> branch-group stable-kf5-qt5 seems to use bleeding edge source code.

> The 'tag' option seems to need to be specified separately for each
> module. In fact the kdesrc-build manual states that you should use
> tarballs instead of 'tag', which would be fine if I could figure out
> how to make those tarballs work with kdesrc-build.

The manual is just trying to say that if you're using an old release
anyways, you're normally better off using a packaged version of that old
release instead of using kdesrc-build.

What you're trying to accomplish is probably easiest done by using the
multiple branch (or tag) options, set to whichever old stable branch
you're trying to build.

There is some standardization on KDE-based branch names outside of KF5
(which only has tags), so what you could do is to choose an old branch
as the global value of the 'branch' option (e.g. Applications/17.12).

Use a specific module-set for frameworks, using the tag option for an
old tag (this will override branch), e.g 'tag v5.37.0'.

If you have modules that fall outside of that tag/branch convention
you'll need to specify (or override) those one by one. You can override
options for modules already included through a module-set using an
'options' block.

So, something like this kdesrc-buildrc file

        include-dependencies true

        # controls default branch to use when branch not set manually
        branch-group stable-kf5-qt5
    end global

    # include non-KDE modules as appropriate here. See the
    # kf5-frameworks-build-include file for an example

    # Bring in KF5
    module-set frameworks-set
        repository kde-projects
        tag v5.13.0

        use-modules frameworks
        # uncomment and add framework names if needed
        # ignore-modules kguiaddons
    end module-set

    module-set plasma-set
        repository kde-projects
        branch Applications/17.12

        use-modules plasma-desktop
        # uncomment and add module names if needed
        # ignore-modules bluez-qt
    end module-set

    # Override tag for extra-cmake-modules as an example, which
    # originally came from frameworks-set
    options extra-cmake-modules
        tag v5.18.0 # overrides v5.13.0 above
    end options

kdesrc-build will try to filter out modules that don't exist at all in
whatever branch is being used, but to be honest this isn't a primary use
case so you may still find some pain points. But if you make it work
please let us know, we could add a working configuration as an example
in kdesrc-build.

 - Michael Pyne