FreeBSD CI image lacks Wayland::EGL support
Closed, ResolvedPublic

Description

From KWin job:

06:55:22 -- The following features have been disabled:
06:55:22
06:55:22 * Wayland::EGL, Enable building of Wayland backend and QPA with EGL support.

Due to that KWin's QPA plugin is not working correctly and we have some tests failing.

Restricted Application added a subscriber: sysadmin. · View Herald TranscriptAug 10 2017, 5:50 PM
graesslin updated the task description. (Show Details)Aug 10 2017, 6:07 PM
tcberner added a subscriber: tcberner.EditedAug 10 2017, 6:10 PM

This is weird, if I configure my kwin-5.10.4 here, EGL gets properly detected:

-- The following features have been enabled:
[...]
 * Wayland::EGL, Enable building of Wayland backend and QPA with EGL support.
[...]
[...]
-- The following RUNTIME packages have been found:
[...]
 * EGL, A platform-agnostic mechanism for creating rendering surfaces for use with other graphics libraries, such as OpenGL|ES and OpenVG., <https://www.khronos.org/egl/>
   Required to build KWin with EGL support
[...]

Is graphics/mesa-libs installed in the CI-images?

Oh

From the build-sandbox logs:

-- Could NOT find Wayland_Egl (missing:  Wayland_Egl_LIBRARY)

On my system I have

-- Found Wayland_Egl: /usr/local/lib/libwayland-egl.so (found version "17.1.5")

And

% pkg which /usr/local/lib/libwayland-egl.so
/usr/local/lib/libwayland-egl.so was installed by package mesa-libs-17.1.5

So my guess is, that really, CI is missing mesa-libs.

Something weird is happening here...

root@FreeBSD11-VM2:~ # pkg install -f mesa-libs
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
        mesa-libs-17.1.5

Number of packages to be reinstalled: 1

367 KiB to be downloaded.

Proceed with this action? [y/N]: y
[1/1] Fetching mesa-libs-17.1.5.txz: 100%  367 KiB 375.3kB/s    00:01    
Checking integrity... done (0 conflicting)
[1/1] Reinstalling mesa-libs-17.1.5...
Extracting mesa-libs-17.1.5: 100%
root@FreeBSD11-VM2:~ # ls /usr/local/lib/libwayland-egl.so
ls: /usr/local/lib/libwayland-egl.so: No such file or directory

Could you run

pkg check -B mesa-libs

and -- as this will obviously fail -- also

pkg check -Ba
tcberner added a comment.EditedAug 10 2017, 6:59 PM

Ahhh... let's put that whisky glass down and turn on the brain -- Wayland is an option in mesa-lib and is off by default.

/usr/ports/graphics/mesa-libs  #  make -VOPTIONS_DEFAULT

You have to manually rebuild the package.

You can do either of the following:

  1. add the following to /etc/make.conf: graphics_mesa-libs_SET=WAYLAND
  2. run make config in /usr/ports/graphics/mesa-lib

in both cases, you have to rebuild the package manually.

You can verify that the option has been set by checking the output of make showconfig.

Side note: Maybe it would be sensible for me or @adridg to set up a pkg-repository with proper optioned packages for the CI to use (instead of using the official ones and building other stuff by hand).

Also such a repo could be something nice for FreeBSD users to test out Wayland. I'm still confident that with a little bit more tweaking here and there we can get KWin pass all unit tests and that would mean Wayland functional on FreeBSD :-)

@tcberner @adridg given that we need customised versions of various Python bindings (like LXML) as the main FreeBSD ports only supply Python 2 variants, I think having a repository for things like this would be a good idea.

It'll make it easier to keep the builders consistent with each other, and let others reproduce our setup more easily locally.

bcooksley edited projects, added build.kde.org; removed Sysadmin.Aug 12 2017, 9:01 AM

Transferring this to the separate CI system board.

bcooksley changed the visibility from "Custom Policy" to "Public (No Login Required)".Aug 12 2017, 9:02 AM
bcooksley changed the edit policy from "Custom Policy" to "All Users".
bcooksley moved this task from Backlog to In Progress on the build.kde.org board.

Ok, so what I would need is

  1. the version of FreeBSD the CI using
  2. a list of packages that need to be available
  3. some place to upload them to (if necessary, I can expose them from my system... though I would prefer not to).

Sure.

  1. Looks like it is FreeBSD 11.0-RELEASE-p1 (according to uname -a at least)
  2. You might want to check with @adridg but i'm fairly sure we've only built the Python packages locally to date. The documentation he wrote on the initial setup can be found at https://cgit.kde.org/sysadmin/ci-tooling.git/tree/doc/FreeBSD%20Slave.txt. If you can tell more easily if you had access to the system i'm happy to set that up.
  3. I assume you basically need somewhere the machines can fetch stuff from over http(s)? If so, and you can do uploads over SFTP we can arrange that.
tcberner added a comment.EditedAug 12 2017, 9:06 PM

1 & 2 Cool. The packages form that list are being built now.

  1. Exactly. It can also lie on an nfs or be mounted in via nullfs[what do you linux guys call them, bind-mount?] .

Then you have to create a /usr/local/etc/pkg/repos/ci_pkgs.conf ala

ci_pkgs: {
  url: "file:///nfs/packages",
  mirror_type: "SRV",
  signature_type: "none",
  enabled: yes,
}

where you replace the '/nfs/packages' with ever they end up ^^

I've now setup freebsdclient@nellie.kde.org for you to upload the packages to.
Once uploaded to /srv/freebsdrepo/ they'll become available at https://build-artifacts.kde.org/freebsdrepo/

Please note that this system is not mirrored and the repository should not be widely used.

Did we get you sorted out with access to the Builders @tcberner?

Awesome. Let me rebulid a fresh set of packages -- I will upload them once they're finished.

Is python35 ok or do you want 36?

Either works, guess we should go with whatever will work for the longest amount of time going forward.

Ok, the packages are now uploaded to /srv/freebsdrepo.

Let me know if anything is missing.

tcberner added a comment.EditedAug 17 2017, 12:20 PM

From Build 114

13:21:42 -- The following features have been enabled:
[...]
13:21:42  * Wayland::EGL, Enable building of Wayland backend and QPA with EGL support.

So it should be available from now on.

bcooksley closed this task as Resolved.Aug 19 2017, 12:35 AM
bcooksley claimed this task.

As this is now available we'll close this.
If EGL support is not operating correctly please reopen with details, including potential solutions if known.