Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.20.0 #3794

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open

Release v2.20.0 #3794

wants to merge 14 commits into from

Conversation

Saviq
Copy link
Collaborator

@Saviq Saviq commented Mar 4, 2025

Saviq and others added 5 commits February 27, 2025 10:52
Try more fonts and more locations when drawing SSD text
The main active ingredient here is passing through the list of
`GLRenderingProviders` when invoking the `SetCompositor` hook, necessary
for QtMir to allocate `Framebuffer`s to submit to output and to get
`gl::Texture`s out of `mg::Buffer`s.

Also some miscellaneous drive-through cleanup, and the addition of
`gl::Texture::tex_id()` that significantly simplifies QtMir by exposing
something Mir already¹ knows.

¹: With the exception of `ShmBuffer`, but this also prompts a bit of
cleanup.
@Saviq Saviq requested a review from a team as a code owner March 4, 2025 08:40
@Saviq Saviq changed the title Release 2.20.0 Release v2.20.0 Mar 4, 2025
@Saviq

This comment was marked as outdated.

@AlanGriffiths
Copy link
Collaborator

Needs #3793

Fixes: #3734

Unclear why/if it was needed before, but today it just breaks things.
@AlanGriffiths
Copy link
Collaborator

I suggest we also cherry-pick:

@Saviq
Copy link
Collaborator Author

Saviq commented Mar 6, 2025

~rc12

Test Plan

Platforms

24.04 24.10
gbm-kms @AlanGriffiths
atomic-kms @AlanGriffiths
eglstream-kms
eglstream-kms + gbm-kms hybrid
x11 @AlanGriffiths @AlanGriffiths
wayland @AlanGriffiths
virtual @AlanGriffiths @AlanGriffiths

Console Providers

24.04 24.10
vt @AlanGriffiths @AlanGriffiths
logind @AlanGriffiths
minimal @AlanGriffiths @AlanGriffiths

Window Manager Examples

24.04 24.10
--window-manager=floating @AlanGriffiths @AlanGriffiths
--window-manager=tiling @AlanGriffiths
-kiosk @AlanGriffiths

Notes

Issue Comment
#3803 Not a blocker: we will aim for an ABI stable update with #3807 (probably 2.21.0)
#3808 Blocker (introduced by #3698)
#3786 This seems like a blocker, but not got a good re-producer

Saviq and others added 5 commits March 6, 2025 13:01
More complex than #3784, but
doesn't have unwanted side-effect

Fixes:  #3792
Keep references to server components by weak pointer so that we do not
extend their life beyond the life of the server
Because we're on an `EGLContextExecutor` we're probably on a different
thread to where the GL state is going to be used, *and* we don't
have implicit flushing with `eglMakeCurrent` happening (because
the context just stays current on the `EGLContextExecutor`.

If the GL implementation has per-thread execution queues (for example,
amdgpu by default), this might mean that the texture setup commands
aren't visible to command stream that's actually using the
texture.

Explicitly `glFlush()` after our texture setup, to ensure
these commands are visible to any `EGLContext` that might
need them.

Closes: #3792
Found compile errors such as the following both on v2.19.3 and main
(with this PR being verified against the latter):
```
In file included from src/platforms/common/server/kms-utils/threaded_drm_event_handler.cpp:17:
In file included from src/platforms/common/server/kms-utils/threaded_drm_event_handler.h:20:
src/platforms/common/server/kms-utils/drm_event_handler.h:42:14: error: no template named 'function' in namespace 'std'
   42 |         std::function<void(unsigned int frame_number, std::chrono::milliseconds frame_time)> on_flip) = 0;
      |         ~~~~~^

In file included from src/server/server.cpp:39:
In file included from src/server/frontend_wayland/wayland_connector.h:20:
src/include/server/mir/shell/token_authority.h:72:10: error: no type named 'mutex' in namespace 'std'
   72 |     std::mutex mutable mutex;
      |     ~~~~~^

In file included from src/server/scene/session_manager.cpp:17:
In file included from src/server/scene/session_manager.h:20:
src/include/server/mir/scene/session_coordinator.h:47:9: error: unknown type name 'pid_t'
   47 |         pid_t client_pid,
      |         ^

src/miral/config_file.cpp:126:28: error: implicit instantiation of undefined template 'std::basic_istringstream<char>'
  126 |         std::istringstream config_stream{config_dirs};
      |                            ^
/usr/bin/../include/c++/v1/__fwd/sstream.h:26:28: note: template is declared here
   26 | class _LIBCPP_TEMPLATE_VIS basic_istringstream;
      |                            ^
```
Since I already fixed similar issues in #3388 and they seem to keep
coming back overtime would it make sense to have CI testbuild against
musl paired with LLVM libc++ as well? Using alpine edge as a base with
`apk add clang19 lld libc++-dev llvm-libunwind-dev` and adding
`--rtlib=compiler-rt` to `CFLAGS`, `-stdlib=libc++ -unwindlib=libunwind`
to `CXXFLAGS` and `-fuse-ld=lld` to `LDFLAGS` should more or less
replicate my setup (minus using LLVM in place of binutils?)
debian/changelog Outdated

- ABI summary:
. miral ABI unchanged at 7
. mircommon ABI bunped to 11
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
. mircommon ABI bunped to 11
. mircommon ABI bumped to 11

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants