Debugging KDE CI runners

Ben Cooksley bcooksley at kde.org
Tue Oct 11 09:20:06 BST 2022


On Tue, Oct 11, 2022 at 6:49 PM Steven Robbins <steve at sumost.ca> wrote:

> Hello,
>

Hi Steven,


>
> I am trying to understand how libraries are selected for installation on
> the
> KDE CI/CD machines.  Please advise if there is a better list for this
> question!
>
> I am helping out with digikam porting to newly-released FFMPEG version 5.
>
> My current understanding is that the craft blueprints file [1] is used to
> select which libraries are required and which versions of each library.
> So
> this code


>     if not CraftCore.compiler.isAndroid:
>             # digiKam mediaPlayer is not yet fully ported to FFMPEG 5 API
>             self.runtimeDependencies["libs/ffmpeg"]                     =
> "4.4"
>
> should cause ffmpeg 4.4 to be installed, shouldn't it?


> Digikam has three CI runners -- linux, freebsd, and windows [2].  The
> first
> two, indeed, have ffmpeg 4.4.  However, on the windows CI, the digikam
> cmake
> rules detects ffmpeg 5 [3].  Why is this?  How can one troubleshoot?
>

There are a couple of things here to pull apart.

First, the Gitlab CI jobs you mention above themselves don't use Craft at
all at build time, so the above configurations you are referring to have no
impact whatsoever.

Those jobs rely on KDE specific Docker containers on Linux and Windows, and
on FreeBSD is a fixed statically provisioned machine.
For Linux and FreeBSD, we use only distribution provided packages for those
systems - while on Windows we use Craft to deploy a static and
centrally managed list of packages on the system.

You are therefore subject to whatever versions of ffmpeg are provided by
OpenSUSE (our Linux Docker image provider) and FreeBSD for those platforms,
and on Windows whatever Craft has specified as the default version of
ffmpeg.

With regards to your Craft Blueprint above, my understanding is that what
you have there is not valid syntax, as Craft doesn't look at individual
blueprints to resolve versions to use.
This is why in your Binary Factory configuration you have the following
specified:

'Digikam':
 buildBlueprint: "digikam"
 versions:
 - name: 'Nightly'
   target: 'master'
   packageAppx: True
   options:
   - 'libs/ffmpeg.version=4.4'
 platforms:
 - 'macos'
 - 'win64'
 - 'mingw64'
 - 'appimage-centos7'
 - 'android-x86_64'

Regards,
Ben


>
> [1] https://invent.kde.org/packaging/craft-blueprints-kde/-/blob/master/
> extragear/digikam/digikam.py
> <https://invent.kde.org/packaging/craft-blueprints-kde/-/blob/master/extragear/digikam/digikam.py>
> [2] https://invent.kde.org/graphics/digikam/-/pipelines
> [3] https://invent.kde.org/graphics/digikam/-/jobs/524549/raw
>      (search for MediaPlayer will use FFMpeg 5 API                    :
> yes)
>
> Thanks,
> -Steve
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-devel/attachments/20221011/b1af9c30/attachment.htm>


More information about the kde-devel mailing list