Depends on the glib-2.0 2.90.0 upgrade in oe-core; 51.0.1 requires
gio-2.0 >= 2.89.0.
gnome_verdir() turns the three component version into "51.0", while the
tarball lives in the "51" directory, so set SRC_URI accordingly.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Depends on the gtk4 4.24.0 upgrade in oe-core; 51.0 requires gtk4
>= 4.23.0. It also needs accountsservice >= 26.27.3, upgraded earlier
in this series.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Quick previewer for Nautilus, started over D-Bus when a file is
selected and space is pressed. It is a gjs application, so meson is
told where gjs and env live on the target through a cross file, which
also keeps the build host paths out of the two wrapper scripts.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Commit c175507f1c ("classes/vala: remove obsolete logic") dropped the
removal of vapigen.m4 bundled with sources
That macro does prefix the paths it reads from vapigen.pc with
PKG_CONFIG_SYSROOT_DIR, but older copies bundled by projects such as
ibus do not, and since these are found first via ACLOCAL_AMFLAGS = -I m4
they take precedence.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Convey is a fork of geary ported to GTK4, libadwaita, gcr-4 and
webkitgtk 6.0. The patches keep build paths out of the binary, drop
host checks that do not apply when cross-compiling and let the vala-unit
subproject find g-ir-compiler through the cross file.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Papers is the successor of evince, a document viewer built on GTK4 and
libadwaita with the shell written in Rust. The cargo invocation in the
meson build takes the target triple from a cross file property so the
Rust parts are cross-compiled.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The vala PACKAGECONFIG was gated on a gobject-introspection distro
feature that does not exist, so libpeas-2.vapi was never built on a
standard distro and convey failed with 'Package libpeas-2 not found in
specified Vala API directories'. Gate it on GI_DATA_ENABLED instead,
like librsvg and libical do; meson skips the vapi without the gir
anyway.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Unlocking a keyring from a client that disconnects afterwards crashed
gnome-keyring-daemon: free_client() drops the PKCS#11 session before the
dispatch table that still owns GkdSecretSession objects referencing it,
gkd_secret_unlock used the service after dispose, and the session held
one reference too few on its GckSession. Three patches address the three
places; debug-mode is turned off so the daemon does not keep the
allocator poisoning enabled.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Needed by gnome-control-center 51, which requires >= 26.27.3.
Upstream no longer publishes tarballs on freedesktop.org, so fetch the
release tag from gitlab.freedesktop.org instead.
All three patches are obsolete: the C99 fixes and the backported commit
00b6e12a are part of the release, and the musl fgetspent_r wrapper has
been replaced by upstream's own fgetspent_r_compat in src/daemon.c.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
tracker_miner_dep only lists the generated enum types header in its
sources, so targets that merely use the dependency - the localsearch-3
executable among them - get no build order edge to the gdbus-codegen
output. In a parallel build tracker-application.c is then compiled
before tracker-dbus-interface.h exists and the build fails.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
SRCREV is the commit the 50.1 tag points at, not the tag object.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The enum types template the host path patch fixed no longer exists.
Refresh the remaining patch against the new sources.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The environ shadowing fix and the .debug directory lookup in the ELF
loader are part of the release now; refresh the remaining icon cache
patch.
51.0 installs a session D-Bus service file, so ship it.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The native backend, udev and logind are no longer optional, and the
egl_device and wayland_eglstream options are gone. Drop those
PACKAGECONFIGs and move the dependencies they carried into DEPENDS.
Upstream now aligns the API version with the release, so the libraries
live in ${libdir}/mutter-51 instead of mutter-18. Derive MUTTER_API_NAME
from PV rather than hardcoding it again.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
1.2.0 installs PyGObject overrides. They need python3-pygobject at
runtime, so put them behind a PACKAGECONFIG that is off by default and
ship them when it is enabled.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The libical 4 fix is part of the release now.
The extensions app was dropped from the module, so its meson option and
the libadwaita runtime dependency that went with it are gone.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The legacy gtk+3 library is still available behind the legacy_library
option, so the gtk3 users in this layer keep working.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Both cross-compilation patches are part of the release now. Upstream
handles the rust target via meson.is_cross_build() and the rust_target
cross property the recipe already provides.
The 2.2 series is released from main, so follow that branch.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
gdm now installs its PAM service files into the vendor directory
${prefix}/lib/pam.d. libpam is configured with vendordir=${sysconfdir}
here, so pass -Dpam-services-dir to keep them in ${sysconfdir}/pam.d,
where do_install:append() amends gdm-password.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The license headers of camel.h and e-data-server-util.h were converted to
SPDX tags; the license itself is unchanged. Point LIC_FILES_CHKSUM at the
end of the header comment so that added includes no longer change the
checksum.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Loupe is the GNOME image viewer that succeeds eog. It loads images via
glycin, which is already packaged here, so the recipe only needs to add
glycin-loaders as a runtime dependency.
The build is meson driving cargo. Upstream invokes cargo without
--target and copies the binary from the native artifact layout, so a
patch teaches src/meson.build to read a rust_target property from the
cross file, the same mechanism glycin uses.
Built and packaged for corei7-64.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
mutter fails to configure on a wayland-only distro configuration:
Run-time dependency gl found: NO (tried pkg-config and system)
../sources/mutter-50.4/meson.build:191:11: ERROR: Dependency "gl" not found (tried pkg-config and system)
The recipe enabled the opengl PACKAGECONFIG unconditionally, which
passes -Dopengl=true and makes meson require desktop OpenGL:
have_gl = get_option('opengl')
if have_gl
gl_dep = dependency('gl')
Desktop GL is not available here. libGL.so and gl.pc are products of
mesa's GLX library - see FILES:libgl-mesa-dev in mesa.inc - and mesa
only builds GLX when its x11 PACKAGECONFIG is on, since
PACKAGECONFIG[x11] passes -Dglx=disabled when it is off. Without x11 in
DISTRO_FEATURES mesa is therefore configured -Dopengl=true -Dglx=disabled
-Dplatforms='wayland' and stages only egl.pc, glesv1_cm.pc and
glesv2.pc, with no libGL and no gl.pc.
The dependency looked satisfied because mesa PROVIDES virtual/libgl
unconditionally, so the virtual/libgl entry in PACKAGECONFIG[opengl]
resolves at the bitbake level even though nothing ever lands in the
sysroot. mesa also installs the GL/*.h headers regardless of GLX, so
meson's 'system' fallback clears the header probe before failing on the
missing library.
mutter builds fine against GLESv2 alone - it only errors out if neither
GL nor GLES2 is enabled - and egl plus gles2 are already enabled here,
which is the usual configuration for a wayland-only compositor. Gate
opengl on x11 so it follows the same condition that decides whether
desktop GL exists at all; x11 builds are unaffected.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
gnome-disk-utility 46.1 fails to build on a wayland-only distro
configuration (no x11 in DISTRO_FEATURES) for three separate reasons,
all of them latent X11 assumptions in the GTK3 code line.
do_configure fails first:
Run-time dependency libcanberra-gtk3 found: NO (tried pkg-config)
meson.build:75:18: ERROR: Dependency "libcanberra-gtk3" not found
meson.build requires libcanberra-gtk3 unconditionally, but
libcanberra's gtk3 support is itself X11-only (its configure.ac does
PKG_CHECK_MODULES(GTK3, [gtk+-3.0 ... gdk-3.0 x11]), the sources use
gdk_x11_get_xatom_by_name_for_display()/GDK_WINDOW_XID, and
libcanberra-gtk3.pc links -lX11), so the meta-oe recipe correctly
leaves the gtk3 PACKAGECONFIG off here and the dependency can never be
satisfied. Drop it, along with the three ca_gtk_play_for_widget() sound
effect call sites; upstream removed libcanberra entirely by the same
route after 46.1 was released.
Once that is out of the way do_compile fails on the X11 backend header:
gdupasswordstrengthwidget.c:14:10: fatal error: 'gdk/gdkx.h' file not found
gduvolumegrid.c:14:10: fatal error: 'gdk/gdkx.h' file not found
gduestimator.c:14:10: fatal error: 'gdk/gdkx.h' file not found
gtk+3 only installs gdk/gdkx.h when its X11 backend is enabled. None of
these three files calls any X11-specific GDK API, so the include is
simply dead weight and can be dropped.
Neither fix is available upstream for this code line: the GTK4 /
libadwaita rewrite deleted or renamed the affected files rather than
fixing them, and no in-flight merge request touches the GTK3 sources
that 46.1 still builds. 46.1 remains the latest stable release.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
libglycin spawns the sandboxed loader binaries from
${libexecdir}/glycin-loaders at runtime, so a rootfs that only carries
libglycin-2.so cannot decode a single image. Nothing pulled in the
loaders package, which left users of libglycin (gnome-shell wallpapers,
nautilus) without any decoder at all.
Let ${PN} rdepend on ${PN}-loaders whenever loaders are built, and make
the loaders -> thumbnailer dependency a recommendation so the runtime
dependency graph stays free of cycles.
Tested by rebuilding gnome-image: libglycin-2-loaders and
libglycin-2-thumbnailer are now part of the rootfs manifest and
/usr/libexec/glycin-loaders/ carries the image-rs, jxl and svg loaders.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch includes
gdk/gdkx.h unconditionally, which does not exist when gtk+3 is configured
without the X11 backend, as is the case on wayland only distros:
polkitgnomeauthenticator.c:29:10: fatal error: 'gdk/gdkx.h' file not found
The patch already checks GDK_IS_X11_WINDOW() at runtime, but that is not
enough: the macro is declared in gdkx.h too, so the include and the
gdk_x11_get_server_time() call have to be compiled out as well. Guard both
with GDK_WINDOWING_X11 and keep gtk_window_present() as the non-X11 path.
Include gdk/gdk.h explicitly before the guard. GDK_WINDOWING_X11 comes from
gdkconfig.h and no gdk or gtk header is pulled in earlier in that file, so
without it the guard would always be false and X11 builds would silently
lose the fresh timestamp instead of failing to build.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
After further debugging it turned out that the root cause of my issue
was a race condition between gdm and kmscon and switching to dbus just changed the
condition to my favour. gdm itself can work with dbus-broker, so this
statement is false
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The icon themes gimp ships are SVG only. Without the gdk-pixbuf SVG
loader GTK cannot load a single icon and gimp aborts at startup with
"Icon 'image-missing' not present in theme Default". Images built with
the GTK tooling usually carry the loader for other reasons, a Plasma
image does not.
Tested on a Plasma image on corei7-64, gimp starts with the loader
installed.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
gnome-keyring switched from autotools to meson in 48.alpha, so the
recipe is converted to the gnomebase meson default.
The configure.ac patch for the ssh-agent and ssh-add paths is replaced
by an equivalent meson patch that adds ssh-agent-path and ssh-add-path
options, because find_program() cannot locate target executables in
the sysroot. The musl patch is dropped, sys/select.h is included
upstream since 48.
Other changes:
- gcr-ui-3 is no longer used, so the gtk+3 dependency and the
GTK3DISTROFEATURES check go away.
- libcap-ng, pam, selinux and systemd are now explicit PACKAGECONFIGs
instead of being auto-detected from whatever is in the sysroot.
libcap-ng was picked up implicitly before and stays enabled.
- The PKCS#11 module and config directories are passed explicitly
instead of being read from the p11-kit pkg-config file.
- Man pages need xsltproc and docbook and are disabled like the docs
were before.
Build tested on corei7-64, the packaged file list is unchanged.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Both packages provide the org.gnome.Settings D-Bus name that GNOME
applications use to open the online accounts settings. Only one of them
can own it, so keep them from being installed together.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>