On Tue, Oct 11, 2022 at 6:49 PM Steven Robbins <st...@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 >