Closed boris-kolpackov closed 2 years ago
Hi @boris-kolpackov thanks a lot for reporting this. I think I understand what happened.
test-installed
and not on test
. The reason for this is that glfw-tests
probes for config.glfw.useosmesa
from lib{glfw}
. This breaks post install as config
variables are not written to pkgconfig
. I believe there was a feature request for this but at the moment, I may have a work around solution for glfw
.stdout
. Strange thing is GitHub CI passes so I’m not sure what’s going on there. I’ll have to look more closely.Linux was always failing as CI is headless. I will disable Linux build going forward.
Actually, I would prefer if we can make things building on Linux. My understanding is that certain X11 libraries are missing and I would be happy to install them. Do you think you can come up with a list? In fact, if you could give me a list of headers you include, I could easily map them to Debian packages to install.
This breaks post install as
config
variables are not written topkgconfig
. I believe there was a feature request for this but at the moment, I may have a work around solution forglfw
.
There is good news pending on this front. I will ping you shortly (most likely tomorrow).
MacOS fail is very surprising. [...] Strange thing is GitHub CI passes so I’m not sure what’s going on there.
Yes, that is strange, we try hard to make CI from git be as close as possible to a build from an archive. Let me know if you still cannot figure out the cause and I will take a look.
Actually, I would prefer if we can make things building on Linux. My understanding is that certain X11 libraries are missing and I would be happy to install them. Do you think you can come up with a list? In fact, if you could give me a list of headers you include, I could easily map them to Debian packages to install.
This would be good. However, I believe the tests would still fail on linux. By default, the linux build uses X11 and all tests require DISPLAY
to be set and available to connect. glfw
does support off screen rendering to get around this which can be enabled by setting config.glfw.useosmesa=true
. Nonetheless the required Ubuntu packages to get a build passing are:
libx11-dev xorg-dev
config.glfw.usewayland=true
): pkg-config libwayland-dev wayland-protocols libxkbcommon-dev
config.glfw.useosmesa=true
): libosmesa6-dev
There is good news pending on this front. I will ping you shortly (most likely tomorrow).
Great. Would be very interesting.
I tried to probe c.libs
from an installed glfw
, aiming to search for pattern by using
import libs = glfw%lib{glfw}
glfw_c_libs = [strings] $($libs: c.libs)
However, glfw_c_loptions
is [null]
for an installed package but gives the correct set of libraries for a config initialized glfw
package. So, I don't basically have a solution so far.
Yes, that is strange, we try hard to make CI from git be as close as possible to a build from an archive. Let me know if you still cannot figure out the cause and I will take a look.
I found that glfw-tests
fails on macos with clang-13
but pass with clang-12
(test only, not tests-installed). The CI is here. Github CI uses clang-11
which potentially explains the pass.
At the moment, I'm unsure if the issue is isolated to apple-clang
only. This requires more debug.
On cppget the MacOs failure maybe actually correct. Thinking a bit more, glfw-tests/exe{monitors}
probes the system for attached monitors and prints each monitor’s properties. An empty STDOUT is still valid, indicating no monitors attached and makes sense for servers without a physical display attached.
PR #6 basically allows STDOUT to be empty.
Side note: GitHub CI passing on v3.3.6 indicates that the MacOS machine has a physical monitor attached.
Thanks for the packages, will aim to install them before the upcoming release.
Regarding the metadata storage in pkg-config
, the functionality is available in the latest staged toolchain and is described in this HOWTO article: https://github.com/build2/HOWTO/blob/master/entries/convey-additional-information-with-exe-lib.md
It would be great if you could give it a try and report any issues (while you won't be able to publish the result yet, 0.15.0
is hopefully only a few weeks out).
FYI, you can CI the result on https://ci.stage.build2.org
(which the staged toolchain uses by default).
Side note: GitHub CI passing on v3.3.6 indicates that the MacOS machine has a physical monitor attached.
Hm, that would be surprising unless they are running rack-fulls of iMacs, which would be pretty insane (but everything is possible, especially with Microsoft). My best guess is they are running things on physical machines (but without monitors attached) while we run things in VMs (into which we logic with VNC) -- maybe this makes the difference?
Ok, I've added a set of Linux GCC 12 configs to stage CI that have all these packages installed: https://ci.stage.build2.org/?build-configs=gcc-12+
It would be great if you could try them and confirm nothing is missing before I start replicating this to all the other Linux configs. Thanks!
Ok, I've added a set of Linux GCC 12 configs to stage CI that have all these packages installed: https://ci.stage.build2.org/?build-configs=gcc-12+
It would be great if you could try them and confirm nothing is missing before I start replicating this to all the other Linux configs. Thanks!
Hi @boris-kolpackov Thank you very much for adding in these packages.
The CI task can be found here.
glfw
builds successfully in this case, however, tests fail as expected because DISPLAY
env variable is not defined and available, which is a requirement for on X11
(default) and Wayland
builds on Linux.
Fixed in v3.3.6+1
glfw
builds successfully in this case, however, tests fail as expected becauseDISPLAY
env variable is not defined and available
FYI, that GCC 12 CI configuration now has X server (Xvfb
) running and DISPLAY
set. Again, it would be great if you could test it and see if anything is missing. Note that we will most likely have this setup for all the Linux configurations eventually but it's unlikely we will mess with this for FreeBSD, etc. So I think the tests should still be prepared to run headless.
Hi @boris-kolpackov I tried to run another CI but it seems GCC 12 config is missing at the time of my run.
Is this only momentary?
I remember there was a gcc-12+
config which I don't find anymore.
I think you are looking at ci.cppget.org -- this GCC 12 config is currently only available on ci.stage.build2.org. You can submit to this CI service with bdep ci --server https://ci.stage.build2.org
(the staged toolchain submits there by default).
Oh yes... my mistake, didn't switch to the stage version of the toolchain when submitting the CI.
Please find the CI task here.
Everything seems to work out fine and for glfw
in default configuration (X11
).
I believe Xvfb
doesn't work with Wayland
(not sure). But Weston
should already have something similar to Xvfb
built-in. I can try to submit into a Wayland
config and report back.
But for the moment, it seems default configuration works well and it would be great if other configs could also get these packages.
But for the moment, it seems default configuration works well and it would be great if other configs could also get these packages.
Yes, that's the plan. Thanks for testing!
I believe
Xvfb
doesn't work withWayland
(not sure). ButWeston
should already have something similar toXvfb
built-in. I can try to submit into aWayland
config and report back.
I think we will start with Xvfb
for this release and maybe add additional configurations for Wayland
and/or Weston
if necessary later. I am not even sure at this stage what would that involve.
New version has been released. Preliminary testing with ci.cppget.org is complete with success. This issue will be closed.
All builds appear to be failing on queue for the 3.3.6 package: https://queue.cppget.org/glfw/3.3.6
Any idea what might be going on?