1. 04 May, 2019 3 commits
    • Jonah Brüchert's avatar
      session-env: Set correct libname on Debian systems. · 74d70dec
      Jonah Brüchert authored
      Contributed by Jonah Brüchert.
      Debian and its derivatives use paths like /usr/lib/$abi-triple, and
      these /don't/ seem to also exist on non-Debian distros. So assume that
      if a GNU ABI triple path is present that it should be used.
      Differential Revision: https://phabricator.kde.org/D19864
    • José JORGE's avatar
      first-run: Add support for Mageia 6 distribution. · b7f93bfe
      José JORGE authored
      Contributed by José JORGE of Mageia based on the existing Fedora package
      list (and deliberately falling back to the Fedora install cmds which are
      I've tested myself by mounting the kdesrc-build directory into a Docker
      container running the base Mageia 6 image and verifying that
      "kdesrc-build --inital-setup" works. I have not verified that any
      substantial packages build from there.
      Differential Revision: https://phabricator.kde.org/D20936
    • Michael Pyne's avatar
      Add support for Meson build system. · 6385f5e4
      Michael Pyne authored
      New/updated config file options:
      * 'configure-flags', reused as the way to pass cmdline options to the
      meson setup command.
      * 'ninja-options', a new option to pass cmdline options to the `ninja`
      command. Note that ninja is mandated by Meson as the underlying build
      Tested with https://github.com/plibither8/2048.cpp
      Fixes #27, reviewed in !8.
      Test suite passes and I continue to be able to build 2048.cpp. I've also
      validated that ninja-options is passed to ninja when building 2048.cpp,
      though this was a manual verification.
  2. 01 May, 2019 1 commit
    • Michael Pyne's avatar
      env: Do not prepend /bin when {qt,kde}dir is blank. · e54200ee
      Michael Pyne authored
      This fixes #29, where kdesrc-build was aggressively prepending '/bin' to
      the PATH if either kdedir or qtdir were unset (and qtdir is unset by
      default). This isn't normally an issue but can conflict with user
      Since the desire here is to setup Qt and/or KF5 before system packages,
      only perform this prepending if Qt and/or KF5 are actually in use from
      kdesrc-build. If those values aren't set then the system should already
      be configured to provide in the environment so we shouldn't interfere.
      It turns out that both ksb::Module and ksb::BuildContext are already
      somewhat testable without a lot of orchestration needed here. I've
      verified that the new tests fails without the patch applied, and pass
      with this patch applied.
  3. 27 Apr, 2019 1 commit
  4. 13 Apr, 2019 3 commits
  5. 31 Mar, 2019 9 commits
  6. 28 Mar, 2019 1 commit
  7. 24 Mar, 2019 1 commit
  8. 23 Mar, 2019 3 commits
  9. 09 Mar, 2019 1 commit
    • Michael Pyne's avatar
      dep-resolv: Fix bug handling negated dependencies. · 318635fd
      Michael Pyne authored
      Fix bug spotted by @ouwerkerk in handling of negated dependencies. Since
      _shortenModuleNames() removes all text from beginning of the string to
      the first '/', and since module names in dependency-data almost always
      contain at least one '/', the '-' prefix that indicates a negated
      dependency is eaten before the dependency is inserted into the
      appropriate list.
      This seems to have not been a significant issue in practice but could
      help with building fewer modules for things like Android-related
      branch-groups (which ignores kf5umbrella and manually specifies a
      minimal dependency list instead).
  10. 02 Mar, 2019 1 commit
  11. 20 Feb, 2019 1 commit
  12. 18 Feb, 2019 2 commits
  13. 09 Feb, 2019 3 commits
    • Michael Pyne's avatar
      Merge branch 'add-qt5-support' into 'master' · 991f4e1f
      Michael Pyne authored
      Add support for building Qt5 modules.
      See merge request !3
    • Michael Pyne's avatar
      Add support for building Qt5 modules. · 11490810
      Michael Pyne authored
      This commit adds basic support for building Qt5 using the Qt5 support
      documented at https://wiki.qt.io/Building_Qt_5_from_Git as requested in
      issue #16 (and a dependency for #15).
      Architecturally within kdesrc-build, Qt5 is handled as a special type of
      module-set, in the same way that KDE project modules are special-cased
      using 'kde-projects'. For Qt5, we use 'qt-projects', and reuse the
      existing use-modules and ignore-modules options.
      The first difference is that {use,ignore}-modules applies to Qt's git
      *submodules*. We pass the combination of those to Qt's `init-repository`
      script as a module-subset. Currently the user will need to enter at
      least a use-modules declaration for other reasons, so we would want to
      setup a sample qt5 configuration to include something appropriate.
      Qt5 support also involves a dedicated source code updater (based on the
      basic Git support already present) and a dedicated build system. The
      source code updater handles the Git update for the qt5 "supermodule"
      containing `init-repository` and then calls `init-repository` to
      complete the rest of the process.
      Unfortunately the existing async IPC code doesn't play well with this
      but the worst that happens is that kdesrc-build will have 2 updates
      running at once for a time (kdesrc-build will think all of Qt is updated
      once the supermodule is updated).
      The build system is actually fairly standard compared to the other
      There's a lot that's still missing here, including:
      * documentation,
      * real support for Git submodules (an open feature request for a long
      * the per-distro list of Qt build dependencies not handled by
      kdesrc-build, and
      * support for things like Qt's `qt5_tool`.
      But, it's successfully built for me with Qt 5.12. :)
    • Michael Pyne's avatar
      first-run: Add Fedora 29 packages and installer metadata. · 34cef6ec
      Michael Pyne authored
      This package set is sufficient to get kdesrc-build --metadata-only to
      work, and assuming Qt 5 is installed, to get through kcoreaddons, maybe
      a bit further.
  14. 08 Feb, 2019 1 commit
  15. 13 Jan, 2019 1 commit
  16. 12 Jan, 2019 2 commits
    • Michael Pyne's avatar
      test: Add plumbing to allow for tracepoints during test. · d9f11a3e
      Michael Pyne authored
      I had added this while searching for the cxxflags bug. I break it up
      into a separate commit because it wasn't actually related to the
      cxxflags bug, but I still think it would be useful.
    • Michael Pyne's avatar
      Fix cxxflags being set to a space when globally empty. · b01505be
      Michael Pyne authored
      When cxxflags is globally set to an empty value, the getOption magic
      that appends module values to global values for cxxflags causes it the
      result to equal ' ' (i.e. one space). This is because the space is a
      separator between two empty values.
      This causes code testing against cxxflags to think it's actually been
      set to a value and to add it in the cmake calls.
      I fix this and add a test case, but also add some insurance by trimming
      leading/trailing white space so that the existing check for empty
      cxxflags would have had a chance to catch this.
      Differential Revision: https://phabricator.kde.org/D18165
  17. 06 Jan, 2019 1 commit
    • Michael Pyne's avatar
      first-run: Add basic installer and packages for Debian distros. · 845e9da4
      Michael Pyne authored
      This adds the installer to allow Debian-based distros to run and a basic
      set of packages needed to at least allow kdesrc-build to successfully
      run --initial-setup, as tested under a Docker image of debian 9.
      This will still miss the dependencies required to fully make it through
      any kind of reasonable KDE software build. In particular even if I
      included the list of Qt modules that Debian 9 stable has available, they
      are too old for current git-based applications. But other modules are
      probably needed and still missing (suggestions accepted! :).
      So there's still more to do here, which is why the bug remains open.
      See issue #15
  18. 30 Dec, 2018 1 commit
  19. 29 Dec, 2018 3 commits
  20. 28 Dec, 2018 1 commit
    • Michael Pyne's avatar
      CI: Add kdesrc-build test suite to Gitlab CI. · a0d3da8b
      Michael Pyne authored
      g++ is required for cmake to complete (even though kdesrc-build doesn't
      use any C++).
      git is used for git-describe in a test.
      Also kdesrc-build requires IO::Socket::SSL and a YAML module just
      to get to --version. JSON::PP comes with perl-modules already.