Debian Package Tracker
Register | Log in
Subscribe

mutter

Example window manager using GNOME's window manager library

Choose email to subscribe with

general
  • source: mutter (main)
  • version: 50.4-1
  • maintainer: Debian GNOME Maintainers (archive) (DMD)
  • uploaders: Jeremy Bícha [DMD]
  • arch: all
  • std-ver: 4.7.4
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • o-o-stable: 3.38.6-2~deb11u2
  • oldstable: 43.8-0+deb12u1
  • stable: 48.7-0+deb13u1
  • testing: 50.4-1
  • unstable: 50.4-1
  • exp: 51~beta-1
versioned links
  • 3.38.6-2~deb11u2: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 43.8-0+deb12u1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 48.7-0+deb13u1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 50.4-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 51~beta-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • gir1.2-mutter-18
  • libmutter-18-0 (2 bugs: 0, 2, 0, 0)
  • libmutter-18-dev
  • libmutter-test-18
  • mutter (13 bugs: 0, 10, 3, 0)
  • mutter-18-tests
  • mutter-common (2 bugs: 0, 2, 0, 0)
  • mutter-common-bin
  • mutter-dev-bin
action needed
version in VCS is newer than in repository, is it time to upload? normal
vcswatch reports that this package seems to have a new changelog entry (version 51~rc-1, distribution UNRELEASED) and new commits in its VCS. You should consider whether it's time to make an upload.

Here are the relevant commit messages:
commit c4e1300d770d84fa3206b12315586bfad5a5b7c4
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date:   Fri Sep 4 10:25:39 2026 +0800

    Drop debian/mutter-common.gsettings-override
    
    Because "experimental-features" doesn't exist anymore since 51.beta, and the
    features we overrode have not been experimental since 50.0. (LP: #2166433)

commit e554f6ed97b91b0a598d3088625b9b4665610092
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date:   Thu Sep 3 17:33:35 2026 +0800

    gir1.2-mutter-51 51~rc can break gnome-shell 51~beta
    
    Because libmutter has removed some symbols.
    
    It seems depending on libmutter-51-0 (= ${binary:Version}) wasn't enough
    and gir1.2-mutter-51 could still be installed and unconfigured without the
    new libmutter-51-0, leading to gnome-shell 51~beta thinking symbols were
    missing. Because they were missing in GIR, even though they weren't missing
    in libmutter-51-0.

commit 68e3fdc8811b23f75fc7bd413857736f982ed5c2
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date:   Thu Sep 3 17:09:43 2026 +0800

    Update breaks for libmutter-51-0

commit 1e99754093e51d7f9366b632bee6124f92480166
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date:   Thu Sep 3 16:34:52 2026 +0800

    Update symbols for 51.rc

commit f43a252aaec5c90dbbd21271debae54ebab70b8a
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date:   Thu Sep 3 16:04:40 2026 +0800

    Refresh patches

commit 5981272d4b59951d5b3a17f750f52bf7ebaaac47
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date:   Thu Sep 3 16:00:34 2026 +0800

    debian: Initial preparations for 51~rc-1

commit 36055019826911ef4d424abd2fb358f02cdcc80e
Merge: 5924d74f c9c99566
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date:   Thu Sep 3 15:57:11 2026 +0800

    Merge tag 'upstream/51_rc' into debian/latest

commit 5924d74f27b53525ebd0012b69b654a7cd32c5c6
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 23 13:32:16 2026 +0100

    Update changelog

commit bb7fd93d58458c357b6c11c90a06bd4fa1a81e41
Merge: 65d1b885 981fb3dd
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 23 13:31:57 2026 +0100

    Merge branch 'debian/forky' into debian/latest

commit 981fb3dd347ad3368acdf8ba2779bfd9c689e12e
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 23 13:28:26 2026 +0100

    Team upload

commit 36962465c89946ced43d95e42f1eb58f3f638b03
Author: Simon McVittie <smcv@debian.org>
Date:   Sat Aug 22 16:09:27 2026 +0100

    New upstream release

commit b3f45664abeee1b09d20a89ad65578aa1bab34df
Merge: 884a40e7 774e9a31
Author: Simon McVittie <smcv@debian.org>
Date:   Sat Aug 22 16:09:26 2026 +0100

    Update upstream source from tag 'upstream/50.4'
    
    Update to upstream version '50.4'
    with Debian dir 939f4acc82356ec189364f5e5db643e6d9f63662

commit 774e9a31d36b4b146c51475b2c404270ce35df6d
Merge: 639f883d 8fe247a2
Author: Simon McVittie <smcv@debian.org>
Date:   Sat Aug 22 16:09:02 2026 +0100

    New upstream version 50.4

commit 884a40e7787cb097475e8908a64ec3b41ecdaa1c
Author: Simon McVittie <smcv@debian.org>
Date:   Sat Aug 22 16:08:42 2026 +0100

    Update changelog

commit fc54cdcce356a0f278f5854ff63682f8693ea5fe
Author: Simon McVittie <smcv@debian.org>
Date:   Sat Aug 22 16:08:13 2026 +0100

    d/watch: Only watch for version 50.x on this branch

commit 65d1b8859bab8699bde8fc9b9eb3f0a8d2b1fa4b
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Wed Aug 5 20:50:09 2026 +0200

    Clean up after debhelper compat 14 and lintian 2.139.0
    
    I left some Depends and Provides behind until lintian 2.139.0
    landed in Unstable to avoid lintian warnings

commit 8fe247a25a5b773e506c3f5f442ca0b7e3d5dc97
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Mon Aug 3 14:01:25 2026 +0200

    Bump version to 50.4
    
    Update NEWS.

commit fef51314da83181254f540d7b994332c9ca28e84
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Fri Jun 19 15:44:56 2026 +0200

    clutter/frame-clock: Use latest possible next_smooth_presentation_time_us
    
    The target presentation time of pending frames can be not only later
    than earliest possible extrapolated from the last presentation time
    (when the frame explicitly targets a later refresh cycle), but also
    earlier (when a previous frame missed its target cycle).
    
    With a series of frames hitting each refresh cycle, the latter case
    resulted in later frames all missing the cycle they were targetting,
    and corresponding higher latency for clients using the Wayland
    commit-timing protocol.
    
    Solve this by calculating the earliest presentation time all possible
    ways, and using the maximum result for next_smooth_presentation_time_us.
    
    Fixes: 23f285f972ae ("clutter/frame-clock: Take previous target presentation time into account")
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5137>
    (cherry picked from commit 6f0b92d6caa63870e3d5a7691766a4ffccf5e282)

commit 69ef9b30a0b601c7acaf3739d5a47fc230d5c8fc
Author: Marco Trevisan (Treviño) <mail@3v1n0.net>
Date:   Mon Jun 17 17:19:56 2024 +0200

    backends/stage-impl: Remove unneeded explicit region cleanups
    
    We've autopointers now, so having this implies doubling the same check
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5203>
    (cherry picked from commit a903a52505e33981be6c0f92ed299fa4afc59a9e)

commit fa96bf0ed397db7da3a596ed928bb07bf54fe303
Author: Marco Trevisan (Treviño) <mail@3v1n0.net>
Date:   Tue May 28 17:44:06 2024 +0200

    backends/stage-impl: Mark queued redraw clip op as unlikely
    
    It's happening in the debug case only, so mark it as such
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5203>
    (cherry picked from commit 1e4866f40c45c713301cdb1fc80e4bdd4ffd1078)

commit cdb748db2816c50a15ccb11d86ca1f516cb02929
Author: Marco Trevisan (Treviño) <mail@3v1n0.net>
Date:   Mon May 27 21:12:44 2024 +0200

    backends/stage-impl: Clamp the redraw clips to the framebuffer size
    
    When computing the redraw clips rectangles we were using graphene
    extents rounding (via "grow" Mtk rounding strategy) to be sure that
    each area is properly covering the unscaled space.
    
    However graphene's extents rounding has not any concept of maximum
    allocation space and thus it may lead to generate rectangles that don't
    fully fit in the framebuffer area.
    
    Assuming of having a framebuffer 3840x2160 scaled @ 2,2018349170684814453125
    
    An example is this rounding rectangle:
      969x1734 at 12x3 (in the framebuffer scaled space)
    
    With the current code it becomes once re-scaled:
      2135x3819 at 26x6 (in the framebuffer unscaled (e.g. monitor) space
    
    And clearly this rectangle doesn't properly fit in the framebuffer,
    since its x2 would be positioned at 2135+26 (=2161, so a pixel outside).
    
    This is not something that is generally problematic for the receiver
    code, since most KMS drivers handle this properly (even though it's still
    conceptually wrong to damage an area bigger than the plane size), but it
    becomes a problem once such rectangle also get transformed, because due
    to the nature of meta_rectangle_transform() the rectangle will also be
    offset.
    
    Following the previous example, applying a 90° rotation, it will become:
      3819x2135 at 6x-1 (in the monitor space)
    
    And now this is really a problem, because we're ending up sending to the
    driver a swap region with offscreen coordinates, and that's something that
    most driver do not really support, causing the KMS commit to fail with:
    
      Failed to post KMS update: drmModeAtomicCommit: Invalid argument
    
    So, when scaling the regions, also clamp the rectangles so that they
    will fit into the framebuffer area.
    
    In the scale_offset_and_clamp_region() case we also need to rescale the
    framebuffer go to back into framebuffer space.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3509
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5203>
    (cherry picked from commit 73c65007d50e12c4a428e5e6d751d37f73bbfae5)

commit 36367efae535bb13d9081a01f19038c1d0d1ce38
Author: Marco Trevisan (Treviño) <mail@3v1n0.net>
Date:   Tue May 28 10:13:17 2024 +0200

    backends/native/kms-impl-device-atomic: Warn on invalid damage rects
    
    When debugging the KMS it may be important check that the submitted
    values are valid, so add some more explicit check on this to make
    clearer what are the drivers expectations
    
    [ Michel Dänzer: Adjust warning conditions to match the kernel's ]
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5203>
    (cherry picked from commit ac57294c3ebd50c13b117e99aa84f9456aeca9df)

commit a9ac87f0468ffc026a6e82a326733e66d0c7493b
Author: Marco Trevisan (Treviño) <mail@3v1n0.net>
Date:   Tue May 28 10:08:48 2024 +0200

    backends/native/kms-impl-device-atomic: Add debug info for damage clips
    
    Provide debug details when damage clips are submitted, so that we can
    check their content when using META_DEBUG=kms since in some cases they
    have been the cause for DRM request commit failures.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5203>
    (cherry picked from commit 1b5625bdcb8fe52cf4288d49ba3e129b0d40a625)

commit a1ae71798ef1ab2e0d2f753f5c98b38b1039b056
Author: Boogie61 <muhammetali47961@gmail.com>
Date:   Thu Jul 30 14:26:41 2026 +0000

    output: Fill in mastering display metadata for HDR output
    
    When the bt2100 color mode is enabled, only the EOTF was set on
    MetaOutputHdrMetadata. The mastering display primaries, white point and
    luminance range were left zero initialised by the designated initializer
    and never filled in, so the HDR_OUTPUT_METADATA infoframe told the sink
    to use the PQ curve without describing the mastering display at all.
    
    Many sinks are unaffected by that, but some tone map differently when
    the mastering display is left undescribed. On the panel this was found
    on, a Samsung ATNA60HU06-0, it shows up as washed out content with very
    low contrast, which goes away once the fields are populated.
    
    Take the values from the colour state the frames are produced in, so
    that the KMS metadata agrees with the image description advertised to
    Wayland clients. MaxCLL and MaxFALL stay unset, since the content light
    level of the composited scene is not known here.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4937
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5199>
    (cherry picked from commit fa6b3575f4e1a43a12902ba322a00c91b38f3bcc)

commit e0fd7d67b880737d930f3b468af5fe2bed5a5fbe
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 12:07:45 2026 +0200

    releasing package mutter version 51~beta-1

commit 39ace68c254c06096fe656d1db340c139b26d265
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 12:40:10 2026 +0200

    Break gnome-shell versions older than 51 beta

commit 64e256aa27b5530ed2379ecfdb5e14d2f6e842dc
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 12:38:42 2026 +0200

    Fix some build warnings

commit ea280c13343c5197da53482fb570a1bdeb28144a
Author: Sebastian Wick <sebastian.wick@redhat.com>
Date:   Sun Jul 12 03:06:50 2026 +0200

    clutter/color-state-params: Set colorimetry type tag when overriding to sRGB
    
    The PQ blending path set blending_colorimetry.colorspace without
    updating the type tag from PRIMARIES to COLORSPACE. Since
    ClutterColorimetry is a tagged union, writing the colorspace enum
    clobbered only the lower bytes of the primaries pointer, causing a
    use-after-free crash in clutter_primaries_equal.
    
    Fixes: e9ab34262e ("clutter/color-state-params: Use output colorimetry & EOTF for blending")
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5176>
    (cherry picked from commit 98ab49c1caea784c558b67a7a8c5d997f85d787e)

commit 4368367937b8a1244883d729889abf892a41087b
Author: Sebastian Wick <sebastian.wick@redhat.com>
Date:   Sun Jul 12 18:01:25 2026 +0200

    clutter/stage-view: Clear offscreen when invalidating pipeline
    
    invalidate_offscreen clears offscreen_pipeline but leaves offscreen
    alive. If a paint arrives before the idle handler recreates both, the
    stage renders into the offscreen but after_paint tries to blit it with a
    NULL pipeline, crashing in cogl_pipeline_foreach_layer.
    
    Clear the offscreen together with the pipeline so the state is always
    consistent. The idle handler already handles recreating both from
    scratch.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5176>
    (cherry picked from commit 65215c1dc06b1269daf1617633949d3ec56d2b56)

commit e14c14955284233927c93c70d132562f887d9baa
Author: Sebastian Wick <sebastian.wick@redhat.com>
Date:   Sun Jul 12 05:21:36 2026 +0200

    clutter/stage-view: Fix viewport not being set on new offscreen
    
    When the idle handler creates a new offscreen FBO, dirty_viewport and
    dirty_projection are FALSE, so setup_view_for_pick_or_paint never sets
    the viewport on the new framebuffer. On monitors not at position (0,0),
    this causes painting with incorrect coordinates since the default
    viewport lacks the view_layout offset.
    
    Mark both as dirty before creating the offscreen so the next paint
    applies the correct viewport and projection.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5176>
    (cherry picked from commit 567987a2d23912f8733199ce1d9100815fad490b)

commit 4f6084ce5dfff3da861e0ba4a309fd588f9245d4
Author: ramyayella <ramya.krishna.yella@intel.com>
Date:   Tue Jun 9 17:40:06 2026 +0530

    output/kms: Filter fallback modes by panel-supported refresh rates
    
    While adding fallback modes add the modes whose refresh rate matches
    with the kernel supported refresh rates.
    
    Signed-off-by: ramyayella <ramya.krishna.yella@intel.com>
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5110>
    (cherry picked from commit 73843088ed3f32aec22a17cc89269fa57bd6dbc4)

commit 0edd2d8699534fd3bbb4c161a4e65363e6c1d985
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Tue Jul 14 18:22:14 2026 +0200

    kms/impl-device: Also discard inhibited KMS updates
    
    Fixes *render-kernel-thread* tests failing randomly.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5184>
    (cherry picked from commit f811e903708f11ae0a0ab1a8df23fa436d146dec)

commit ade2439b213609552667336f701de2cc1a28ab23
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Thu Jul 9 09:52:31 2026 +0200

    kms/impl-device: Handle NULL crtc_frames in disarm_all_frame_sources
    
    Prevents a crash in that case.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5170>
    (cherry picked from commit 5816af5d657af6bcbf0fd6bd830bc7e34611dcfb)

commit 23e796cc0b679d75f45bd9edbdaf9ef4976fd2f6
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Thu Jun 25 11:48:21 2026 +0200

    wayland/transaction: Ignore stale timestamp constraints
    
    If the constraint is in the past, we don't need to do anything for it.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4861
    
    v2:
    * Drop comparison with next presentation time: If we don't set a
      timestamp constraint, the next frame may end up being presented
      earlier than expected.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5159>
    (cherry picked from commit 7124ddf7e532537c0de8ba62d3a76767fdba5ff1)

commit 137094d1531844c29e34b460fdea17e7dd37fb81
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Mon Jul 6 16:44:29 2026 +0200

    kms/impl-device: Handle NULL crtc_frames in _discard_pending_page_flips
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4848
    Fixes: 14b3d57b7d92 ("kms-impl-device: Discard pending update when discarding pending flips")
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5163>
    (cherry picked from commit 5d187100e2e146511cc19269d2f1c650cc3125ab)

commit 570de65dd05e1b362fdef90dcb811c22acd8a8e2
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Tue Jun 16 12:08:24 2026 +0200

    clutter: Let logical key events from IMs go through without a device
    
    These events are not tied to a hardware device, and poking at input
    capabilities of keyboard devices is less of an usecase, so it does not
    seem to make a lot of sense to create a virtual keyboard device for
    these.
    
    Rely on clutter_event_source_device() return value being nullable, and
    let events with the IM flag be propagated without a source device.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4853
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5121>
    (cherry picked from commit 2710ddc8a2515a0a77afde4cb9a70a4b14c72f14)

commit 514cd59e5f27f6821225d31b801526250a7b4c39
Author: James Railton <jarail@gmail.com>
Date:   Tue Jun 16 15:03:51 2026 -0400

    tests/stage-views: Add fractional view position test
    
    Add a test with two monitors where the second one is fractionally scaled
    at a logical position whose device offset is fractional
    (767 * 1.5 = 1150.5), in a stage whose scaled size is also fractional
    (1367 * 1.5 = 2050.5). Two view-aligned solid color actors and a texture
    displaying alternating single device pixel rows are painted, and
    individual pixels of the framebuffer are checked: actor boundaries must
    land on the exact device pixel rows, the view's first and last rows must
    be covered, and the texture rows must stay pure black and white.
    
    The same content is also captured through
    clutter_stage_paint_to_framebuffer_clipped() into an offscreen, which -
    unlike an onscreen view - is y-flipped, and checked the same way, so
    both paint paths and both viewport flip conventions are covered.
    
    A coverage-only check would not catch this: a pure half-pixel shift
    combined with the rasterizer's edge tie-breaking can reproduce identical
    solid-color coverage, so the texture is sampled under linear filtering,
    where a sub-pixel offset blends the alternating rows to gray instead.
    
    https://gitlab.gnome.org/GNOME/mutter/-/issues/4451
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5115>
    (cherry picked from commit 0a7b8b436e4c61144c7615866f433b5eddba4e16)

commit 08a9b2283c61995374c3b36166a3982f02552d69
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 12:06:43 2026 +0200

    debian/libmutter-51-0.symbols: Update

commit 00028910b76c172e080648c6503f629d481c548d
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 07:35:38 2026 +0200

    Update minimum gsettings-desktop-schemas

commit 94e225b72a900c7e6dfa266109bf5d5e8542c2a7
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 07:31:31 2026 +0200

    Update debhelper compat to 14

commit ecbdd19bc961f86354f07226f2f113924bf4164d
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 07:26:52 2026 +0200

    Refresh patches

commit 5aa24e8c3958b3105666dde90b4a01956add81d9
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 06:09:03 2026 +0200

    New upstream release

commit 9a0ac91d8ddc92827ad1453a8d35a08c7ad65e3b
Merge: 82b3d44c 4f4375c3
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date:   Mon Aug 3 12:25:01 2026 +0200

    Update upstream source from tag 'upstream/51_beta'
    
    Update to upstream version '51~beta'
    with Debian dir 04fdc31d721a16c36f192265469d885fccd8257c

commit 36fc7e2e7752bf36f4f891d7f5ea4335dbcb661f
Author: James Railton <jarail@gmail.com>
Date:   Tue Jun 16 15:02:00 2026 -0400

    clutter/stage: Compensate fractional viewport in framebuffer captures
    
    clutter_stage_paint_to_framebuffer_clipped() sets up its target the same
    way per-view painting does - the shared stage projection plus a viewport
    derived from origin * scale and stage_size * scale - and has the same
    rounding problem: it passed the unrounded floats to
    cogl_framebuffer_set_viewport(), which truncates them to integers at GL
    flush. A capture whose origin * scale is fractional (the monitor
    screen-cast source passes the monitor's logical layout and scale
    directly, so a fractionally-positioned monitor qualifies) is therefore
    shifted by up to half a pixel and stretched, the same blur the previous
    commit fixed on the monitor itself - except here it lands in the
    recording, which then no longer matches the screen.
    
    Use clutter_stage_calculate_viewport_and_projection() here too, so the
    captured framebuffer gets the same integral viewport and compensating
    projection.
    
    https://gitlab.gnome.org/GNOME/mutter/-/issues/4451
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5115>
    (cherry picked from commit 308a0fccb0238db6006e2da6eb119f5250f36050)

commit 97e61894fccc399811a67a71d5bed5fa5dc17361
Author: James Railton <jarail@gmail.com>
Date:   Tue Jun 16 15:00:46 2026 -0400

    clutter/stage: Compensate fractional viewport remainders in the projection
    
    The stage to view transform is exact in view-local terms:
    fb = (stage - view_position) * view_scale.
    _clutter_stage_maybe_setup_viewport() expresses it as the shared stage
    projection plus a per-view viewport, which turns the viewport offset into
    view_position * view_scale and the viewport size into stage_size *
    view_scale - neither of which is necessarily integral. A logical monitor
    at y=489 with a scale of 1.5 has a device offset of 733.5, and a stage
    spanning 1367 logical pixels covers 2050.5 device pixels on such a view,
    while viewports can only carry integers. roundf() silently dropped both
    remainders, shifting all rasterization on such views by up to half a
    device pixel and stretching it by a fraction of a pixel across the stage.
    
    This had two kinds of user-visible consequences:
    
    Every view with a non-integral device offset rendered blurred: the
    sub-pixel shift makes meta_actor_painting_untransformed() fail for every
    surface on the view, silently demoting them from NEAREST to LINEAR
    filtering and resampling them off the pixel grid. Supported scale values
    are floats chosen to make the logical monitor size integral (e.g.
    1.3333333730697632), for which position * scale is integral for no
    non-zero position at all, so monitors at such scales were blurred at
    every placement except the layout origin - which also rules out fixing
    this by constraining positions in the configuration layer.
    
    At an offset remainder of exactly 0.5 (odd positions at 150%, positions
    2 (mod 4) at 125%), the view-aligned geometry's bottom or right edge
    additionally lands exactly on pixel centers, where the rasterizer's fill
    rules drop the boundary row, so the view's last pixel row is never
    rendered by anything. On views that render through an intermediate
    offscreen (e.g. HDR, where the color state needs mapping), the offscreen
    is persistent and that row accumulates stale window content indefinitely.
    
    Factor the rounding and compensation into a helper that keeps the
    integral parts in the viewport and folds the remainders into the
    projection as a clip space scale and translation, so the combined
    transform stays exact and view-aligned geometry lands on exact
    framebuffer pixel coordinates for any logical monitor position. With zero
    remainders the projection passes through unchanged, leaving integral
    configurations bit-identical.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4451
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5115>
    (cherry picked from commit a79b894122706a909e8b6b3452bfa6369a8515d4)

commit 82b3d44cf8c40ca87ffb99b5edbd8cc65ff21879
Merge: ae518983 ed0d6418
Author: Simon McVittie <smcv@debian.org>
Date:   Mon Aug 3 10:54:45 2026 +0100

    Merge branch 'debian/forky' into debian/latest

commit ed0d64184bb490d9cd8f2ea3793ea08186c8d087
Author: Simon McVittie <smcv@debian.org>
Date:   Mon Aug 3 10:52:01 2026 +0100

    Release to unstable

commit ae518983b6d5aa2695308ace5ab59ae143308127
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 19:52:50 2026 +0100

    Revert "d/control, d/gbp.conf: Branch for forky"
    
    This reverts commit 62bd819129d22cf02ff28e2363aae733f476c438.

commit 37566c9ee4783fce8f85d6b00bd2ee32bc0b2830
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 18:06:56 2026 +0100

    Update changelog

commit c1827b72a5f24b1a8f5e3b8a377a7f7247490f92
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 18:01:52 2026 +0100

    d/patches: Refresh
    
    Drop patches that were applied upstream.

commit 89ea36dcbce586c826ce74febb18d84a737a8f28
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 18:00:53 2026 +0100

    New upstream release

commit 13ddbfadf9590a9fab0a47a3e8d8982e9e60508f
Merge: 795b27bb 639f883d
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 18:00:53 2026 +0100

    Update upstream source from tag 'upstream/50.3'
    
    Update to upstream version '50.3'
    with Debian dir b3e726caa465e525165cd1ab14cb37bac38043ae

commit 639f883d6728ae7f175dabbe47e2a71a57bdcf24
Merge: e067ca5e a9558493
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 18:00:27 2026 +0100

    New upstream version 50.3

commit cfe8a46ddff59f0f2af497cfbcb5e32c581cad10
Merge: cdf15276 795b27bb
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 17:38:06 2026 +0100

    Merge branch 'debian/forky' into debian/latest

commit 795b27bb62c950af01565b84c176af4da5b44b85
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 17:23:19 2026 +0100

    Release to unstable

commit c54d8b8809a4c4e94ef1644c2eb472780683c5d6
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 16:31:28 2026 +0100

    Update changelog

commit f938433940cc4d2cd84cd9a483bcaeb18c8ebb24
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 14:44:27 2026 +0100

    Stop setting udevdir dynamically
    
    Since trixie, we can expect that it will always be /usr/lib/udev.

commit 2678e826c7b7adc4c0a832393131e2db778a3e43
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 14:43:55 2026 +0100

    d/mutter-common.install: Sort alphabetically

commit 8e176b78929cf73a538fda0252485ed5b0780dcf
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 14:42:06 2026 +0100

    Use debhelper ${env:...} substitutions instead of dh-exec

commit de8cd411a5e689fb9abd11acc1846da8345aba13
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 12:14:00 2026 +0100

    Update changelog

commit 465fac56ee0e86841909d588dcc1ef44b6d374d5
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 12:12:54 2026 +0100

    d/patches: Add patch from upstream 51~alpha to fix FTBFS with newer Pango
    
    Closes: #1143340

commit 3feaadcfba2f2919e9925efae210bf10b1e4357d
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 12:12:29 2026 +0100

    d/patches: Mark two patches as released upstream in 51~alpha

commit 62bd819129d22cf02ff28e2363aae733f476c438
Author: Simon McVittie <smcv@debian.org>
Date:   Sun Aug 2 12:07:02 2026 +0100

    d/control, d/gbp.conf: Branch for forky
    
    The debian/latest branch now contains GNOME 51 prereleases for
    experimental.

commit af617ce242f5eb6e5e3cd184331d370f57baa37e
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Wed Jul 8 15:01:36 2026 +0200

    screen-cast-stream-source: Handle NULL cursor renderer
    
    meta_backend_get_cursor_renderer may return NULL now.
    
    
    (cherry picked from commit 547f1db2838dc09a189c645d6d679191562092e5)
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5189>

commit 764fdcb86eb7b27c7218d60a27bbbc8ce034d8d5
Author: Vasil Pupkin <3abac@3a.by>
Date:   Wed Jul 8 21:25:51 2026 +0000

    Update Belarusian translation
    
    Co-authored-by: Vasil Pupkin <3abac@3a.by>

commit a9558493a3efce4183a221aae4681ccba4fa76a7
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Tue Jun 30 15:45:34 2026 +0200

    Bump version to 50.3
    
    Update NEWS.

commit 07461c96eb4e7e35a6ee795a3270b917cff33a1c
Author: Sundeep Mediratta <smedius@gmail.com>
Date:   Tue Jun 30 07:48:42 2026 -0400

    core/window: Refresh target monitor on monitor changes
    
    Windows of type DESKTOP and override_redirect skip the normal monitor
    refresh path during monitor reconfiguration, which can leave target_monitor
    stale after hotplug or mode changes.
    
    Re-sync the desktop window target monitor from the updated main monitor
    so later constraint code does not follow a stale logical monitor reference.
    
    Fixes: 6bee1e5b58 ("window: Introduce 'target monitor' concept")
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4891
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5151>
    (cherry picked from commit 371973f3d05db3f7663dada09a7197ed3f1142af)

commit 76903a66419dfa6df96d928c9f8f24df53eed83a
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Wed Jul 1 10:32:51 2026 +0200

    backends/native: Ensure GPU data when asking for gbm_device
    
    If the native cursor renderer is created at a time that a MetaGpuKms got
    its MetaRendererNative's GPU data collected by free_unused_gpu_datas(), it
    will be asking for a gbm_device in order to figure out whether using the
    cursor plane is an option, but triggering a crash since the missing GPU data
    would cause a NULL pointer dereference.
    
    Since the cursor renderer is asking for a gbm_device, it makes sense to
    make the MetaRendererNative get out of its way to get one. Ensure to create
    GPU data for it, or sanely bail out if it could not be created on the spot.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4890
    Fixes: de5ee29e94 ("backends/native: Initialize HW cursor support right away")
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5153>
    (cherry picked from commit def264ecf556784035ddc48c1ba67b2c327f8a79)

commit c0830de6ce93f310a873412533be48346fea350e
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Tue Jun 2 15:13:36 2026 -0500

    clutter: Fix build with pango master
    
    Pango defines autocleanups since pango!908.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5102>
    (cherry picked from commit ba64e055b5159a3acd5b4e4bc3d381066b26c62c)

commit e68c3a848b5e2f6be1c31a51f697f73e33d62d9f
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Mon Jun 29 15:59:14 2026 +0200

    stream-source/virtual: Don't assume there is a cursor renderer
    
    There might not be one, depending on various circumstances, so add a
    check.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5143>
    (cherry picked from commit 8abdae0b00b035cca8fb47d6ff9e3f411c2f0f20)

commit e108fc794a0a2ea88a9d31b4449bac20baa7d467
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Mon Jun 22 13:27:33 2026 +0200

    wayland: Keep weak ref on cursor renderer
    
    This is not called anywhere down the line if the cursor renderer
    happened to be disposed underneath by the backend, possibly resulting
    in leaked MetaCursorRenderers, and stale cursors on screen.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit df76315c6b9ff9ddd4b5828808798c5fe8e8e9a3
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Fri Jun 19 13:03:28 2026 +0200

    clutter: Avoid cursor renderer flickering in event handling
    
    For all devices, it makes sense to update the ClutterSprite position
    first, before updating the cursor, this may result in the KMS cursor
    briefly popping in the previous coordinates, before catching up with
    the position.
    
    More specifically for tablets, avoid the CLUTTER_PROXIMITY_IN event
    in re-picking, since this event is only informational about the stylus
    in use, and does not have any coordinates itself.
    
    Altogether, fixes some cursor flickering between old and new position
    after PROXIMITY_OUT + PROXIMITY_IN.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit f416478f7f0d61196f16132e6593ab59792b41ea
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Fri Jun 19 13:01:50 2026 +0200

    backends: Avoid cursor renderer flicker when re-assigning sprite
    
    Ensure the cursor renderer coordinates update immediately to those
    of the given sprite, instead of waiting for the next event. This
    avoids the cursor flickering between the old sprite's position and
    the new one when e.g. switching between pointer and tablet input.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit df95e7f72e06b77718fd96d28164a3733bc6771c
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Wed Jun 17 16:22:09 2026 +0200

    clutter: Reset tablet tool sprite's clear area on PROXIMITY_OUT
    
    Otherwise, the tablet tool might still consider itself still within the
    prior actor coordinates if the area was large enough. This was most
    harmful with a fullscreen client.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4803
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit dd90487fc82bd13de85e9b0edff3a34272e5fab8
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Wed Jun 17 15:36:33 2026 +0200

    clutter: Avoid repicking sprites without an actor
    
    When handling possible device updates within a view, skip the
    sprites that do not have a current target actor. This may be the
    case for pointer cursors with focus inhibition in place (although
    indirectly prevented though other means), or the case of tablet
    cursors between PROXIMITY_OUT and the next PROXIMITY_IN.
    
    So notably on tablet devices, this would result in a cursor popping
    into existence again, possibly picking things underneath. The future
    PROXIMITY_IN event will result in a new target actor anyways, so this
    is only undesirable.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4678
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit 2dbde4afd74a4f31bbf21147195d9bb5b6471979
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Wed Jun 17 14:56:56 2026 +0200

    backends: Update cursor renderers on preference changes
    
    Ensure the sprite cursors' are invalidated, and looked up again
    through the backend in case of ClutterCursorType cursors, so the
    preference changes apply immediately.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit a4a851d417cd098e22ae3362fdb705eea7a6b860
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Wed Jun 17 14:44:17 2026 +0200

    wayland: Drop intermediate caching of cursors for cursor types
    
    Make the pointer and tablet tool interfaces stop storing the
    ClutterCursor, it will either come from the cursor surface, or
    obtained from the ClutterBackend for the pointer shape in effect.
    
    As a side effect, the whole meta_wayland_compositor_get_cursor()
    chain of calls is now (transfer full), this is in line with the
    behavior of the ClutterActor::get_cursor_for_sprite vmethod that
    these method provide support for, in Wayland surface actors.
    
    This will help make things like cursor size changes work out of
    the box, without special hooks on preference changes to drop these
    caches.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit ef6a55ed1c329a7e54667a01630f5290d7ec41fd
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Fri Jun 19 23:50:32 2026 +0200

    backends/native: Return NULL cursor renderer for unpicked sprites
    
    When the sprite has a NULL actor (e.g. pointer cursor is inhibited, or
    tablet after PROXIMITY_OUT), the related cursor renderer is detached from
    the sprite.
    
    However there is a number of paths that may lead to
    meta_seat_native_maybe_ensure_cursor_renderer() on any of the sprites
    that may promptly undo this, often making the pointer cursor's sprite
    earn again a cursor renderer, and monopolize the HW cursor renderer
    this way.
    
    Make sprites with a NULL picked actor use a NULL cursor renderer, so
    it is more reliable that the cursor renderer can be taken other by
    other sprites.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit 11a743198cdf08a56ce33a61acff340702838ea9
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Tue Jun 23 07:33:45 2026 +0200

    backends/native: Initialize HW cursor support right away
    
    The native cursor renderer creation may be delayed now, meaning
    it won't catch MetaContext::on-started on time to set itself up.
    This might result in the native cursor renderer sticking to the
    overlay fallbacks, so initialize HW cursor data right away, or
    await for future ::gpu-added signals.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit 588109ca7b20cd80ed36f2db7b529a6d4ea6a9cf
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Mon Jun 22 18:43:02 2026 +0200

    backends: Ignore motion from virtual source pointer
    
    This may be the case during pointer warping and whatnot, and may
    happen despite there being actual hw pointer devices or not. Ignore
    those events altogether.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit a1cac93771f0e0f1d7b345b458edf20f1b2c0d87
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Wed Jun 17 16:26:33 2026 +0200

    compositor: Check all cursor renderers looking for scanout candidates
    
    Check for any overlapping cursor renderer requiring an overlay, not just
    the pointer's. This will correctly result in the surface actor being
    demoted as scanout candidate if there are any secondary cursor renderers
    on it, as well as correctly promoted if it's other sprite than the
    pointer's which is the current owner of the HW cursor plane.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit b9401b76de7142838d5a56d03359a103834f14fc
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Thu Jun 18 15:47:43 2026 +0200

    backends: Handle NULL cursor renderer on startup
    
    There might be no guarantees that one is needed or created at all,
    handle the case of it being NULL
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit 1b574793a72fa0fac0ddd3e7ade1fe6533bdab07
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Thu Jun 18 13:02:26 2026 +0200

    tests: Handle a NULL cursor renderer
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5126>

commit 1efb909a015cce75ce354aa8e503001436b1b916
Author: Sebastian Keller <skeller@gnome.org>
Date:   Thu Jun 11 20:28:03 2026 +0200

    wayland/text-input: Restore OSK trigger for version 1 of text_input_v3
    
    In version 1 of text_input_v3 we used two consecutive `enable()` calls
    to trigger the OSK. This was dropped in f24e857b when introducing
    support for version 2 which now allows explicitly showing/hiding the
    OSK. This meant that for clients not supporting version 2 yet, it was
    impossible to trigger the OSK.
    
    This now restores this method for clients still using version 1.
    
    Fixes: f24e857bb2 ("wayland: Implement version 2 of text_input_v3 protocol")
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4857
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5117>

commit 505a9720aed57cdbd6416d7ee1b4df913863b3b1
Author: Marius Cirsta <mforce2@gmail.com>
Date:   Sun Jun 21 23:11:33 2026 +0300

    backends/native: Don't add fallback modes to tiled connectors
    
    maybe_add_fallback_modes() synthesises a set of common CVT modes and
    appends them to a connector so the user can select resolutions the panel
    does not natively advertise (the GPU scales them to fit). That only makes
    sense for a standalone panel.
    
    A connector that belongs to a tile group is not standalone: it drives one
    tile of a larger monitor and must always run its native tile timing, or
    the tiles stop lining up into the combined framebuffer. Every fallback
    mode added to a tile is therefore unusable.
    
    It is also actively harmful. find_untiled_output() chooses a tiled
    monitor's representative output by counting each tile's non-tile modes via
    count_untiled_crtc_modes(). The injected fallback modes are counted there,
    so a tile that happens to receive more of them can outvote the tile that
    owns the real full-panel modes and become the monitor's main output. The
    panel's true resolutions then disappear from the UI.
    
    This is observable on Apple dual-tile 5K panels: the right tile is a
    non-eDP DisplayPort connector with a single portrait mode, so it is not
    covered by the existing eDP guard below and gets ~40 portrait CVT
    fallbacks. That makes it outvote the left (eDP) tile, and the panel's
    landscape modes -- including the single-tile 4K compatibility mode -- stop
    being offered.
    
    Skip fallback-mode injection whenever the connector is part of a tile
    group.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5134>
    (cherry picked from commit b7a2dad45a76498bb427f8fb856084faa248601c)

commit 43b8c7096b049636645a54f87c3b09c07e3d1fe3
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Sat Jun 6 15:48:55 2026 +0200

    clutter/frame-clock: Log presented time delta between frames
    
    This is useful for spotting missed display refresh cycles between
    frames, in particular but not only when frames didn't have target
    presentation times.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5127>
    (cherry picked from commit ba04771f3c55b80e6710f35fb094ae58982174d2)

commit 985401faf5739fe80e7f3e44cf8c956835c7a07c
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Sat Jun 6 15:48:50 2026 +0200

    clutter/frame-clock: Always log presented time
    
    We previously didn't log it for frames which had a target presentation
    time and hit the corresponding target display refresh cycle, which was
    confusing.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5127>
    (cherry picked from commit c3a3b84cf052bb39f060fbf693355f32ffdef128)

commit 2eb05bb11c79afac2654b2417dbf832ecbbaec3c
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Mon Jun 15 17:44:10 2026 +0200

    screen-cast/stream-src: Fix Y scaling factor in _accumulate_redraw_clip
    
    Fixes: 7ce731f8010d ("screen-cast/stream-src: Scale and crop redraw clip to stream layout")
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5119>
    (cherry picked from commit 152d5a8772029ebdc463822e5b1dfc27376208d1)

commit fdf4f1770f0e6dea1dad0d040409ff2990dfddaa
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Mon Jun 8 13:15:58 2026 +0200

    tests/wayland-client-tests/ycbcr: Initialize array
    
    This fixes an uninitialized warning:
    
        ../src/tests/wayland-test-clients/ycbcr.c|143 col 21| error: ‘planes[0]’ may be used uninitialized [-Werror=maybe-uninitialized]
        ||   143 |               pixel = planes[0] + (y * strides[0]) + x;
        ||       |               ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5118>
    (cherry picked from commit ad740d9798bb9dc5e15c46ebf3ca4c374e9f3a8b)

commit 88caf4d561ff47777e7de20ad3c68e6efcf32329
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Mon Jun 8 13:15:26 2026 +0200

    clutter/grid-layout: Use g_newa0()
    
    This fixes a uninitialized warning:
    
        ../clutter/clutter/clutter-grid-layout.c|974 col 3| error: ‘<unknown>’ may be used uninitialized [-Werror=maybe-uninitialized]
        ||   974 |   g_sort_array (spreading,
        ||       |   ^~~~~~~~~~~~~~~~~~~~~~~~
        ||   975 |                 n_requested_sizes, sizeof (guint),
        ||       |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ||   976 |                 compare_gap, sizes);
        ||       |                 ~~~~~~~~~~~~~~~~~~~
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5118>
    (cherry picked from commit d05958ca5ada020e13ebcc9628a669a895968822)

commit 7329208f38a8f7382e1d560700a3c9098fb8c6a5
Author: Andre Nijman <andre.perth.2010@gmail.com>
Date:   Mon Jun 8 13:51:28 2026 +0800

    surface-actor: Clip the redraw clip region to the texture bounds
    
    set_unobscured_region() already intersects the region it stores with the
    texture's preferred-size bounds, but set_clip_region() stored the redraw
    clip verbatim. A clip that extends past the texture therefore kept the
    shaped texture's clip region non-empty even when the displayed texture
    lies entirely outside it, so the empty-clip early-out in
    meta_shaped_texture_paint_content() fired less often than it could.
    
    Intersect the clip with the same bounds, factored into a shared helper.
    The painted output is unchanged: do_paint_content() already clamps every
    painted rect to the content rect, which equals these bounds, so clip area
    outside the texture never produced pixels.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5108>
    (cherry picked from commit 1eecd7890c2229eba5cd9a8f6a8aa4280f2cf129)

commit 246b034eb5dd4e2cbf8da40c535a29fe1b65f6da
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Tue Jun 9 11:48:03 2026 +0200

    tests: Add barrier destroy race test
    
    The test checks that destroying a barrier when there is a pending event
    is gracefully handled.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5107>
    (cherry picked from commit 2bae67c21f24cd7d60d4770a0754133f7614f0bb)

commit da0a7d7f05c4a8bc86a2eb7ccc7a52cc722bb6f6
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Tue Jun 9 11:47:27 2026 +0200

    tests/test-runner: Add commands to create/destroy barriers
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5107>
    (cherry picked from commit 3fd1cfa6257a43a2b4cf855db8d22772c7844e17)

commit b2c85fdaaa96ae9d7ce36696db874b3700821ef4
Author: Zander Brown <zbrown@gnome.org>
Date:   Fri Jun 12 17:11:32 2026 +0100

    barrier: Don't emit on inactive barrier
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5107>
    (cherry picked from commit 96ec54b0b1718b9be40cfbd01d11776c4adf10fb)

commit 257abc6d93f888f622aea23fb2a01f454847e8df
Author: Zander Brown <zbrown@gnome.org>
Date:   Sat Jun 6 21:22:55 2026 +0100

    barrier: Ensure lives long enough for idle emit
    
    The idle source took ownership of the event, but then simply presumed
    the barrier itself would be long-lived. The session I just lost would
    seem to suggest this assumption isn't entirely sound 😅.
    
    Avoid this by holding a reference for the lifetime of the source.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5107>
    (cherry picked from commit 8e5f7b125824df34fc5c364ace2c0e130ebd7cfa)

commit 75198478079a11420b5ca9a9d8bf72a7d48ddfd8
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Wed Jun 3 10:27:00 2026 +0200

    tests/wayland: Add fractional scaling test repeated-preferred-scale case
    
    It creates a wp_fractional_scale_v1 object, destroys it, and creates a
    second one. It checks that the preferred_scale event is sent for both
    of them.
    
    This would have caught the issue fixed by the previous commit.
    
    v2: [Robert Mader]
    * Add Red Hat copyright line in new test client.
    * Remove stray newline.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5103>
    (cherry picked from commit e63e4e918680d1a4272332c68b5445ee58ed9d28)

commit f41e0ee10b6f72e205996a780c02232976fcfbc6
Author: Michel Dänzer <mdaenzer@redhat.com>
Date:   Wed Jun 3 10:23:22 2026 +0200

    wayland/fractional-scale: Ensure preferred_scale event is sent
    
    Need to clear the recorded surface scale when a new
    wp_fractional_scale_v1 object is created, or we may never send the
    preferred_scale event for it.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4834
    Fixes: 305931e2dd72 ("wayland: Implement fractional_scale_v1 protocol")
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5103>
    (cherry picked from commit 86ee97171858da7193195869a2d1395150feeba3)

commit c3fdb88a6fb35b1b469a187396b9c8a2afe68935
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Thu May 28 12:37:07 2026 +0200

    wayland-surface-state: Always hold a reference to the buffer
    
    Prior to this, we'd sometimes own a reference, and sometimes not; but
    could end up with both no buffer destroy handler and no reference, which
    meant we disposed a reference to the buffer we didn't own.
    
    Fix this by simplifying buffer reference ownage by always owning one.
    We'll still get the signal callback for when a buffer is destroyed,
    since it's tied to the lifetime of the wl_resource, not
    MetaWaylandBuffer.
    
    Fixes the following crash:
    
      0) g_type_check_instance()
      1) ???
      2) g_signal_emit_valist()
      3) g_signal_emit()
      4) meta_wayland_buffer_destroy_handler()
      5) ???
      6) wl_client_destroy()
      7) ???
      8) wl_event_loop_dispatch()
      9) wayland_event_source_dispatch()
     10) ???
     11) ???
     12) g_main_loop_run()
     13) meta_context_run_main_loop()
     14) main()
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5097>
    (cherry picked from commit a164c54e63a3fc64352b32ec5e65a165d20c1c49)

commit 918da17b0be2286382772ee38d53311b0be146b4
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Mon Jun 1 22:48:44 2026 +0200

    cursor/wayland: Don't hold a ref on the surface
    
    The surface owns a reference to the Wayland cursor instance tied to it,
    so if the cursor itself has a reference back to the surface, we end up
    with a circular dependency, causing a memory leak. Fix this by making
    the Wayland cursor instance only have a weak pointer to the surface, and
    handle the surface disappearing gracefully.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5097>
    (cherry picked from commit e8d998b52af31347d2ce83c39ae7eaa4c4d28586)

commit 7452db01c0a7521c89154f23fc3d5b3d75a6b742
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Mon Jun 1 22:50:23 2026 +0200

    wayland-cursor-surface: Chain up the constructed vfunc
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5097>
    (cherry picked from commit 275b12319274fe194ce25d6f82acea421ccb18f7)


https://salsa.debian.org/api/v4/projects/gnome-team%2Fmutter API request failed: 401 Unauthorized at /srv/qa.debian.org/data/vcswatch/vcswatch line 410.
Created: 2026-08-05 Last update: 2026-09-04 04:32
debian/patches: 2 patches to forward upstream low

Among the 5 debian patches available in version 50.4-1 of the package, we noticed the following issues:

  • 2 patches where the metadata indicates that the patch has not yet been forwarded upstream. You should either forward the patch upstream or update the metadata to document its real status.
Created: 2023-02-26 Last update: 2026-08-23 23:00
testing migrations
  • This package will soon be part of the auto-mutter transition. You might want to ensure that your package is ready for it. You can probably find supplementary information in the debian-release archives or in the corresponding release.debian.org bug.
news
[rss feed]
  • [2026-08-31] mutter 50.4-1 MIGRATED to testing (Debian testing watch)
  • [2026-08-23] Accepted mutter 50.4-1 (source) into unstable (Simon McVittie)
  • [2026-08-06] mutter 50.3-1 MIGRATED to testing (Debian testing watch)
  • [2026-08-03] Accepted mutter 51~beta-1 (source amd64) into experimental (Debian FTP Masters) (signed by: Jeremy Bícha)
  • [2026-08-03] Accepted mutter 50.3-1 (source) into unstable (Simon McVittie)
  • [2026-08-02] Accepted mutter 50.2-4 (source) into unstable (Simon McVittie)
  • [2026-06-13] mutter 50.2-3 MIGRATED to testing (Debian testing watch)
  • [2026-06-08] Accepted mutter 50.2-3 (source) into unstable (Simon McVittie)
  • [2026-06-06] Accepted mutter 50.2-2 (source) into unstable (Simon McVittie)
  • [2026-06-04] Accepted mutter 50.2-1 (source) into experimental (Simon McVittie)
  • [2026-04-16] Accepted mutter 50.1-1 (source) into experimental (Simon McVittie)
  • [2026-03-28] Accepted mutter 50.0-1 (source) into experimental (Simon McVittie)
  • [2026-02-19] mutter 49.4-1 MIGRATED to testing (Debian testing watch)
  • [2026-02-16] Accepted mutter 49.4-1 (source) into unstable (Simon McVittie)
  • [2026-02-08] Accepted mutter 50~beta-2 (source) into experimental (Jeremy Bícha)
  • [2026-02-08] Accepted mutter 50~beta-1 (source amd64) into experimental (Debian FTP Masters) (signed by: Jeremy Bícha)
  • [2026-01-30] mutter 49.3-1 MIGRATED to testing (Debian testing watch)
  • [2026-01-27] Accepted mutter 49.3-1 (source) into unstable (Simon McVittie)
  • [2025-12-20] Accepted mutter 48.7-0+deb13u1 (source) into proposed-updates (Debian FTP Masters) (signed by: Simon McVittie)
  • [2025-11-27] mutter 49.2-1 MIGRATED to testing (Debian testing watch)
  • [2025-11-24] Accepted mutter 49.2-1 (source) into unstable (Simon McVittie)
  • [2025-11-06] mutter 49.1.1-2 MIGRATED to testing (Debian testing watch)
  • [2025-10-31] Accepted mutter 49.1.1-2 (source) into unstable (Simon McVittie)
  • [2025-10-27] Accepted mutter 49.1.1-1 (source) into experimental (Jeremy Bícha)
  • [2025-10-15] Accepted mutter 49.1-1 (source) into experimental (Simon McVittie)
  • [2025-09-26] Accepted mutter 49.0-3 (source) into experimental (Simon McVittie)
  • [2025-09-21] mutter 48.5-1 MIGRATED to testing (Debian testing watch)
  • [2025-09-18] Accepted mutter 48.5-1 (source) into unstable (Simon McVittie)
  • [2025-09-16] Accepted mutter 49.0-2 (source) into experimental (Jeremy Bícha)
  • [2025-09-16] Accepted mutter 49.0-1 (source) into experimental (Jeremy Bícha)
  • 1
  • 2
bugs [bug history graph]
  • all: 40
  • RC: 0
  • I&N: 36
  • M&W: 4
  • F&P: 0
  • patch: 0
links
  • homepage
  • lintian
  • buildd: logs, exp, reproducibility
  • popcon
  • browse source code
  • other distros
  • screenshots
  • l10n (-, 79)
  • debian patches
  • debci
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 51~beta-1ubuntu2
  • 4 bugs (1 patch)
  • patches for 51~beta-1ubuntu2

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing