From 4831a4676458753b9092415e8bee2348ef811049 Mon Sep 17 00:00:00 2001 From: Bruce Leidl Date: Wed, 8 May 2024 11:00:03 -0400 Subject: [PATCH] GNOME upgrade to 46.0 Recipes updated: adwaita-icon-theme 43 --> 46.0 cairomm 1.12.0 --> 1.18 gdm 42.0 --> 45.0 glibmm 2.62.0 --> 2.78.0 gjs 1.77.90 --> 1.80.0 gnome-backgrounds 45.0 --> 46.0 gnome-bluetooth 42.4 --> 46.0 gnome-control-center 45.0 --> 46.0 gnome-disk-utility 42.0 --> 46.0 gnome-session 42.0 --> 46.0 gnome-settings-daemon 45.0 --> 46.0 gnome-shell 45.0 --> 46.0 gnome-system-monitor 42.0 --> 46.0 gsettings-desktop-schemas 45.0 --> 46.0 gtk4 4.12.1 --> 4.14.1 gvfs 1.50.2 --> 1.54.0 libadwaita 1.4.0 --> 1.5.0 libgtop 2.40.0 --> 2.41.3 libgweather4 4.2.0 --> 4.4.2 libwacom 0.26 --> 2.8.0 mutter 45.0 --> 46.0 pangomm 2.46.2 --> 2.50.1 New recipes added: pipewire 1.0.4 wireplumber 0.5.0 doxygen 1.9.3 gcr 4.2.0 rtkit 0.13 libopus 1.5.1 libjxl 0.10.2 wayland gtkmm4 4.14.0 --- .../gnome-settings-daemon_%.bbappend | 2 + .../bbappends/gnome-system-monitor_%.bbappend | 1 + .../gstreamer1.0-plugins-good_%.bbappend | 2 +- .../recipes-citadel/bbappends/gtk4_%.bbappend | 2 + .../bbappends/libcanberra_%.bbappend | 1 + .../bbappends/pipewire_%.bbappend | 42 ++ .../bbappends/wireplumber_%.bbappend | 14 + .../images/citadel-extra-image.bb | 2 - .../packagegroup-citadel-base.bb | 1 - .../packagegroups/packagegroup-desktop.bb | 7 +- .../recipes-support/drm/libdrm_2.4.120.bb | 59 ++ ...-meson-do-not-pull-in-clc-for-clover.patch | 56 ++ .../0001-drisw-fix-build-without-dri3.patch | 58 ++ .../0001-gallium-Fix-build-with-llvm-17.patch | 40 ++ ...sdetects-64bit-atomics-on-mips-clang.patch | 24 + ...k-for-all-linux-host_os-combinations.patch | 42 ++ ...on-t-try-zink-if-not-enabled-in-mesa.patch | 42 ++ .../recipes-support/mesa/libglu_9.0.3.bb | 31 + ...01-mesa-demos-Add-missing-data-files.patch | 624 ++++++++++++++++++ ...-DEMOS_DATA_DIR-to-locate-data-files.patch | 234 +++++++ .../recipes-support/mesa/mesa-demos_8.5.0.bb | 43 ++ .../recipes-support/mesa/mesa-gl_24.0.2.bb | 15 + meta-citadel/recipes-support/mesa/mesa.inc | 369 +++++++++++ .../recipes-support/mesa/mesa_24.0.2.bb | 2 + ...uild-use-python3-directly-for-python.patch | 28 + .../virglrenderer/virglrenderer_1.0.1.bb | 33 + ...ayland-info-Fix-build-without-libdrm.patch | 42 -- .../wayland/libinput/determinism.patch | 21 - ...{libinput_1.19.4.bb => libinput_1.25.0.bb} | 12 +- ...cols_1.27.bb => wayland-protocols_1.33.bb} | 4 +- ...-utils_1.1.0.bb => wayland-utils_1.2.0.bb} | 11 +- ...der-pkgconfig-sysroot-for-pkgdatadir.patch | 46 ++ .../{wayland_1.21.0.bb => wayland_1.22.0.bb} | 5 +- .../recipes-support/wayland/weston-init.bb | 51 +- .../recipes-support/wayland/weston-init/init | 2 +- .../wayland/weston-init/weston-socket.sh | 20 + ...Include-libgen.h-for-basename-signat.patch | 48 ++ .../{weston_10.0.2.bb => weston_13.0.0.bb} | 37 +- .../0001-Don-t-use-AC_CANONICAL_HOST.patch | 27 - .../adwaita-icon-theme_43.bb | 40 -- .../adwaita-icon-theme_46.0.bb | 30 + .../gdm/{gdm_42.0.bb => gdm_45.0.1.bb} | 20 +- ...01-Support-cross-builds-a-bit-better.patch | 11 +- ...ot-add-dir-installed-tests-when-inst.patch | 12 +- .../gjs/{gjs_1.77.90.bb => gjs_1.80.0.bb} | 5 +- ...unds_45.0.bb => gnome-backgrounds_46.0.bb} | 2 +- ...etooth_42.4.bb => gnome-bluetooth_46.0.bb} | 4 +- ...001-Add-meson-option-to-pass-sysroot.patch | 50 +- .../0002-Don-t-update-icon-cache.patch | 8 +- .../0003-Remove-panels-for-citadel.patch | 395 +++++++++-- ...r_45.0.bb => gnome-control-center_46.0.bb} | 11 +- ...tility-remove-libcanberra-dependency.patch | 135 ++++ ...ity_42.0.bb => gnome-disk-utility_46.0.bb} | 16 +- ...systemd-and-session-to-desktop-files.patch | 50 -- .../gnome-session/gnome-session_42.0.bb | 41 -- .../gnome-session/gnome-session_46.0.bb | 36 + ...0001-disable-power-tests-and-sharing.patch | 76 --- ..._45.0.bb => gnome-settings-daemon_46.0.bb} | 14 +- ...nome-shell_45.0.bb => gnome-shell_46.0.bb} | 7 +- ...r_42.0.bb => gnome-system-monitor_46.0.bb} | 10 +- ...0.bb => gsettings-desktop-schemas_46.0.bb} | 2 +- .../gvfs/{gvfs_1.50.2.bb => gvfs_1.54.0.bb} | 30 +- ...ibadwaita_1.4.0.bb => libadwaita_1.5.0.bb} | 4 +- .../0001-Fix-hostleak-in-link-path.patch | 22 - .../recipes-gnome/libgtop/libgtop_2.40.0.bb | 15 - .../recipes-gnome/libgtop/libgtop_2.41.3.bb | 12 + ...eather4_4.2.0.bb => libgweather4_4.4.2.bb} | 5 +- .../mutter/{mutter_45.0.bb => mutter_46.0.bb} | 9 +- .../pipewire/pipewire-0.2_git.bb | 64 ++ .../pipewire/pipewire-media-session_0.4.2.bb | 26 + .../recipes-gnome/pipewire/pipewire_1.0.4.bb | 388 +++++++++++ ...isable-session-dbus-dependent-features.lua | 5 + .../wireplumber/wireplumber_0.5.0.bb | 145 ++++ .../0001-build-don-t-look-for-Iconv.patch | 37 ++ .../doxygen-native-only-check-python3.patch | 232 +++++++ .../recipes-support/doxygen/doxygen_1.9.3.bb | 21 + meta-gnome/recipes-support/gcr/gcr_4.2.0.bb | 59 ++ .../gtk+/{gtk4_4.12.1.bb => gtk4_4.14.1.bb} | 7 +- .../recipes-support/gtk+/gtkmm4_4.14.0.bb | 22 + ...d-gtk3-version-for-canberra_gtk_play.patch | 94 +++ ...-all-GdkDisplays-are-GdkX11Displays-.patch | 65 ++ .../files/0001-remove-dropped-templates.patch | 65 ++ .../libcanberra/libcanberra_0.30.bb | 74 ++- .../recipes-support/libjxl/libjxl_git.bb | 44 ++ .../recipes-support/libopus/libopus_1.5.1.bb | 56 ++ .../recipes-support/libwacom/libwacom_0.26.bb | 15 - .../libwacom/libwacom_2.8.0.bb | 24 + .../recipes-support/mm/atkmm-2.36_2.36.2.bb | 23 + meta-gnome/recipes-support/mm/atkmm_2.28.0.bb | 19 - .../recipes-support/mm/cairomm-1.16_1.18.0.bb | 18 + .../recipes-support/mm/cairomm_1.12.0.bb | 15 - .../recipes-support/mm/glibmm-2.68_2.78.0.bb | 33 + .../mm/glibmm/remove-examples.patch | 40 -- .../recipes-support/mm/glibmm_2.62.0.bb | 35 - .../mm/gtkmm/0001-do-not-build-demos.patch | 51 -- .../recipes-support/mm/gtkmm3_3.24.2.bb | 23 - ...ngomm_2.46.2.bb => pangomm-2.48_2.50.1.bb} | 9 +- .../recipes-support/rtkit/rtkit_0.13.bb | 23 + 98 files changed, 4110 insertions(+), 794 deletions(-) create mode 100644 meta-citadel/recipes-citadel/bbappends/gnome-settings-daemon_%.bbappend create mode 100644 meta-citadel/recipes-citadel/bbappends/gnome-system-monitor_%.bbappend create mode 100644 meta-citadel/recipes-citadel/bbappends/gtk4_%.bbappend create mode 100644 meta-citadel/recipes-citadel/bbappends/libcanberra_%.bbappend create mode 100644 meta-citadel/recipes-citadel/bbappends/pipewire_%.bbappend create mode 100644 meta-citadel/recipes-citadel/bbappends/wireplumber_%.bbappend create mode 100644 meta-citadel/recipes-support/drm/libdrm_2.4.120.bb create mode 100644 meta-citadel/recipes-support/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch create mode 100644 meta-citadel/recipes-support/mesa/files/0001-drisw-fix-build-without-dri3.patch create mode 100644 meta-citadel/recipes-support/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch create mode 100644 meta-citadel/recipes-support/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch create mode 100644 meta-citadel/recipes-support/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch create mode 100644 meta-citadel/recipes-support/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch create mode 100644 meta-citadel/recipes-support/mesa/libglu_9.0.3.bb create mode 100644 meta-citadel/recipes-support/mesa/mesa-demos/0001-mesa-demos-Add-missing-data-files.patch create mode 100644 meta-citadel/recipes-support/mesa/mesa-demos/0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch create mode 100644 meta-citadel/recipes-support/mesa/mesa-demos_8.5.0.bb create mode 100644 meta-citadel/recipes-support/mesa/mesa-gl_24.0.2.bb create mode 100644 meta-citadel/recipes-support/mesa/mesa.inc create mode 100644 meta-citadel/recipes-support/mesa/mesa_24.0.2.bb create mode 100644 meta-citadel/recipes-support/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch create mode 100644 meta-citadel/recipes-support/virglrenderer/virglrenderer_1.0.1.bb delete mode 100644 meta-citadel/recipes-support/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch delete mode 100644 meta-citadel/recipes-support/wayland/libinput/determinism.patch rename meta-citadel/recipes-support/wayland/{libinput_1.19.4.bb => libinput_1.25.0.bb} (79%) rename meta-citadel/recipes-support/wayland/{wayland-protocols_1.27.bb => wayland-protocols_1.33.bb} (83%) rename meta-citadel/recipes-support/wayland/{wayland-utils_1.1.0.bb => wayland-utils_1.2.0.bb} (66%) create mode 100644 meta-citadel/recipes-support/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch rename meta-citadel/recipes-support/wayland/{wayland_1.21.0.bb => wayland_1.22.0.bb} (91%) create mode 100755 meta-citadel/recipes-support/wayland/weston-init/weston-socket.sh create mode 100644 meta-citadel/recipes-support/wayland/weston/0001-libweston-tools-Include-libgen.h-for-basename-signat.patch rename meta-citadel/recipes-support/wayland/{weston_10.0.2.bb => weston_13.0.0.bb} (81%) delete mode 100644 meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch delete mode 100644 meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme_43.bb create mode 100644 meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme_46.0.bb rename meta-gnome/recipes-gnome/gdm/{gdm_42.0.bb => gdm_45.0.1.bb} (67%) rename meta-gnome/recipes-gnome/gjs/{gjs_1.77.90.bb => gjs_1.80.0.bb} (83%) rename meta-gnome/recipes-gnome/gnome-backgrounds/{gnome-backgrounds_45.0.bb => gnome-backgrounds_46.0.bb} (76%) rename meta-gnome/recipes-gnome/gnome-bluetooth/{gnome-bluetooth_42.4.bb => gnome-bluetooth_46.0.bb} (87%) rename meta-gnome/recipes-gnome/gnome-control-center/{gnome-control-center_45.0.bb => gnome-control-center_46.0.bb} (86%) create mode 100644 meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-gnome-disk-utility-remove-libcanberra-dependency.patch rename meta-gnome/recipes-gnome/gnome-disk-utility/{gnome-disk-utility_42.0.bb => gnome-disk-utility_46.0.bb} (59%) delete mode 100644 meta-gnome/recipes-gnome/gnome-session/gnome-session/0002-Add-systemd-and-session-to-desktop-files.patch delete mode 100644 meta-gnome/recipes-gnome/gnome-session/gnome-session_42.0.bb create mode 100644 meta-gnome/recipes-gnome/gnome-session/gnome-session_46.0.bb delete mode 100644 meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon/0001-disable-power-tests-and-sharing.patch rename meta-gnome/recipes-gnome/gnome-settings-daemon/{gnome-settings-daemon_45.0.bb => gnome-settings-daemon_46.0.bb} (80%) rename meta-gnome/recipes-gnome/gnome-shell/{gnome-shell_45.0.bb => gnome-shell_46.0.bb} (89%) rename meta-gnome/recipes-gnome/gnome-system-monitor/{gnome-system-monitor_42.0.bb => gnome-system-monitor_46.0.bb} (74%) rename meta-gnome/recipes-gnome/gsettings-desktop-schema/{gsettings-desktop-schemas_45.0.bb => gsettings-desktop-schemas_46.0.bb} (85%) rename meta-gnome/recipes-gnome/gvfs/{gvfs_1.50.2.bb => gvfs_1.54.0.bb} (79%) rename meta-gnome/recipes-gnome/libadwaita/{libadwaita_1.4.0.bb => libadwaita_1.5.0.bb} (88%) delete mode 100644 meta-gnome/recipes-gnome/libgtop/libgtop/0001-Fix-hostleak-in-link-path.patch delete mode 100644 meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb create mode 100644 meta-gnome/recipes-gnome/libgtop/libgtop_2.41.3.bb rename meta-gnome/recipes-gnome/libgweather/{libgweather4_4.2.0.bb => libgweather4_4.4.2.bb} (84%) rename meta-gnome/recipes-gnome/mutter/{mutter_45.0.bb => mutter_46.0.bb} (93%) create mode 100644 meta-gnome/recipes-gnome/pipewire/pipewire-0.2_git.bb create mode 100644 meta-gnome/recipes-gnome/pipewire/pipewire-media-session_0.4.2.bb create mode 100644 meta-gnome/recipes-gnome/pipewire/pipewire_1.0.4.bb create mode 100644 meta-gnome/recipes-gnome/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua create mode 100644 meta-gnome/recipes-gnome/wireplumber/wireplumber_0.5.0.bb create mode 100644 meta-gnome/recipes-support/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch create mode 100644 meta-gnome/recipes-support/doxygen/doxygen/doxygen-native-only-check-python3.patch create mode 100644 meta-gnome/recipes-support/doxygen/doxygen_1.9.3.bb create mode 100644 meta-gnome/recipes-support/gcr/gcr_4.2.0.bb rename meta-gnome/recipes-support/gtk+/{gtk4_4.12.1.bb => gtk4_4.14.1.bb} (96%) create mode 100644 meta-gnome/recipes-support/gtk+/gtkmm4_4.14.0.bb create mode 100644 meta-gnome/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch create mode 100644 meta-gnome/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch create mode 100644 meta-gnome/recipes-support/libcanberra/files/0001-remove-dropped-templates.patch create mode 100644 meta-gnome/recipes-support/libjxl/libjxl_git.bb create mode 100644 meta-gnome/recipes-support/libopus/libopus_1.5.1.bb delete mode 100644 meta-gnome/recipes-support/libwacom/libwacom_0.26.bb create mode 100644 meta-gnome/recipes-support/libwacom/libwacom_2.8.0.bb create mode 100644 meta-gnome/recipes-support/mm/atkmm-2.36_2.36.2.bb delete mode 100644 meta-gnome/recipes-support/mm/atkmm_2.28.0.bb create mode 100644 meta-gnome/recipes-support/mm/cairomm-1.16_1.18.0.bb delete mode 100644 meta-gnome/recipes-support/mm/cairomm_1.12.0.bb create mode 100644 meta-gnome/recipes-support/mm/glibmm-2.68_2.78.0.bb delete mode 100644 meta-gnome/recipes-support/mm/glibmm/remove-examples.patch delete mode 100644 meta-gnome/recipes-support/mm/glibmm_2.62.0.bb delete mode 100644 meta-gnome/recipes-support/mm/gtkmm/0001-do-not-build-demos.patch delete mode 100644 meta-gnome/recipes-support/mm/gtkmm3_3.24.2.bb rename meta-gnome/recipes-support/mm/{pangomm_2.46.2.bb => pangomm-2.48_2.50.1.bb} (64%) create mode 100644 meta-gnome/recipes-support/rtkit/rtkit_0.13.bb diff --git a/meta-citadel/recipes-citadel/bbappends/gnome-settings-daemon_%.bbappend b/meta-citadel/recipes-citadel/bbappends/gnome-settings-daemon_%.bbappend new file mode 100644 index 0000000..02c5cf2 --- /dev/null +++ b/meta-citadel/recipes-citadel/bbappends/gnome-settings-daemon_%.bbappend @@ -0,0 +1,2 @@ +PACKAGECONFIG = "nm alsa gudev wayland" +EXTRA_OEMESON += " -Dwwan=false" diff --git a/meta-citadel/recipes-citadel/bbappends/gnome-system-monitor_%.bbappend b/meta-citadel/recipes-citadel/bbappends/gnome-system-monitor_%.bbappend new file mode 100644 index 0000000..918d94c --- /dev/null +++ b/meta-citadel/recipes-citadel/bbappends/gnome-system-monitor_%.bbappend @@ -0,0 +1 @@ +RRECOMMENDS:${PN}:remove = "adwaita-icon-theme" diff --git a/meta-citadel/recipes-citadel/bbappends/gstreamer1.0-plugins-good_%.bbappend b/meta-citadel/recipes-citadel/bbappends/gstreamer1.0-plugins-good_%.bbappend index f3f8767..3a2cec2 100644 --- a/meta-citadel/recipes-citadel/bbappends/gstreamer1.0-plugins-good_%.bbappend +++ b/meta-citadel/recipes-citadel/bbappends/gstreamer1.0-plugins-good_%.bbappend @@ -1 +1 @@ -PACKAGECONFIG="orc soup3 pulseaudio x11 asm bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 speex taglib v4l2 vpx" +PACKAGECONFIG="orc soup3 x11 asm bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 speex taglib v4l2 vpx" diff --git a/meta-citadel/recipes-citadel/bbappends/gtk4_%.bbappend b/meta-citadel/recipes-citadel/bbappends/gtk4_%.bbappend new file mode 100644 index 0000000..7153734 --- /dev/null +++ b/meta-citadel/recipes-citadel/bbappends/gtk4_%.bbappend @@ -0,0 +1,2 @@ +# Remove this dependency so it doesn't get dragged in with gtk. These icons are in citadel-extra-image now +GTKBASE_RRECOMMENDS:remove = "adwaita-icon-theme-symbolic" diff --git a/meta-citadel/recipes-citadel/bbappends/libcanberra_%.bbappend b/meta-citadel/recipes-citadel/bbappends/libcanberra_%.bbappend new file mode 100644 index 0000000..dfc9ef6 --- /dev/null +++ b/meta-citadel/recipes-citadel/bbappends/libcanberra_%.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG = "pulseaudio gtk3" diff --git a/meta-citadel/recipes-citadel/bbappends/pipewire_%.bbappend b/meta-citadel/recipes-citadel/bbappends/pipewire_%.bbappend new file mode 100644 index 0000000..3370f08 --- /dev/null +++ b/meta-citadel/recipes-citadel/bbappends/pipewire_%.bbappend @@ -0,0 +1,42 @@ +PACKAGECONFIG:remove = "avahi jack libcamera webrtc-echo-cancelling libusb systemd-system-service v4l2" + +FILES:${PN} += "\ + ${sysconfdir}/systemd/user/default.target.wants/filter-chain.service \ + ${sysconfdir}/systemd/user/default.target.wants/pipewire.service \ + ${sysconfdir}/systemd/user/sockets.target.wants/pipewire.socket \ +" + +FILES:${PN}-pulse += "\ + ${sysconfdir}/systemd/user/default.target.wants/pipewire-pulse.service \ + ${sysconfdir}/systemd/user/sockets.target.wants/pipewire-pulse.socket \ +" + +do_install:append() { + install -d ${D}${sysconfdir}/systemd/user/default.target.wants + install -d ${D}${sysconfdir}/systemd/user/sockets.target.wants + + # filter-chain.service + # [Install] + # WantedBy=default.target + ln -sf ${systemd_user_unitdir}/filter-chain.service ${D}${sysconfdir}/systemd/user/default.target.wants/filter-chain.service + + # pipewire.socket + # [Install] + # WantedBy=sockets.target + ln -sf ${systemd_user_unitdir}/pipewire.socket ${D}${sysconfdir}/systemd/user/sockets.target.wants/pipewire.socket + + # pipewire.service + # [Install] + # WantedBy=default.target + ln -sf ${systemd_user_unitdir}/pipewire.service ${D}${sysconfdir}/systemd/user/default.target.wants/pipewire.service + + # pipewire-pulse.socket + # [Install] + # WantedBy=sockets.target + ln -sf ${systemd_user_unitdir}/pipewire-pulse.socket ${D}${sysconfdir}/systemd/user/sockets.target.wants/pipewire-pulse.socket + + # pipewire-pulse.service + # [Install] + # WantedBy=default.target + ln -sf ${systemd_user_unitdir}/pipewire-pulse.service ${D}${sysconfdir}/systemd/user/default.target.wants/pipewire-pulse.service +} diff --git a/meta-citadel/recipes-citadel/bbappends/wireplumber_%.bbappend b/meta-citadel/recipes-citadel/bbappends/wireplumber_%.bbappend new file mode 100644 index 0000000..648e608 --- /dev/null +++ b/meta-citadel/recipes-citadel/bbappends/wireplumber_%.bbappend @@ -0,0 +1,14 @@ +PACKAGECONFIG:remove = "systemd-system-service" + +do_install:append() { + install -d ${D}${sysconfdir}/systemd/user/pipewire.service.wants + + # wireplumber.service + + # [Install] + # WantedBy=pipewire.service + ln -sf ${systemd_user_unitdir}/wireplumber.service ${D}${sysconfdir}/systemd/user/pipewire.service.wants/wireplumber.service + # Alias=pipewire-session-manager.service + ln -sf ${systemd_user_unitdir}/wireplumber.service ${D}${sysconfdir}/systemd/user/pipewire-session-manager.service + +} diff --git a/meta-citadel/recipes-citadel/images/citadel-extra-image.bb b/meta-citadel/recipes-citadel/images/citadel-extra-image.bb index a2272e5..9456c9e 100644 --- a/meta-citadel/recipes-citadel/images/citadel-extra-image.bb +++ b/meta-citadel/recipes-citadel/images/citadel-extra-image.bb @@ -11,9 +11,7 @@ PACKAGE_INSTALL = "\ base16-vim \ adwaita-icon-theme \ adwaita-icon-theme-cursors \ - adwaita-icon-theme-hires \ adwaita-icon-theme-symbolic \ - adwaita-icon-theme-symbolic-hires \ " CITADEL_IMAGE_VERSION = "${CITADEL_IMAGE_VERSION_extra}" diff --git a/meta-citadel/recipes-citadel/packagegroups/packagegroup-citadel-base.bb b/meta-citadel/recipes-citadel/packagegroups/packagegroup-citadel-base.bb index 504592d..75e1f15 100644 --- a/meta-citadel/recipes-citadel/packagegroups/packagegroup-citadel-base.bb +++ b/meta-citadel/recipes-citadel/packagegroups/packagegroup-citadel-base.bb @@ -9,7 +9,6 @@ BASH_COMPLETION = "\ bash-completion \ iproute2-bash-completion \ glib-2.0-bash-completion \ - pulseaudio-bash-completion \ systemd-bash-completion \ util-linux-bash-completion \ " diff --git a/meta-citadel/recipes-citadel/packagegroups/packagegroup-desktop.bb b/meta-citadel/recipes-citadel/packagegroups/packagegroup-desktop.bb index d98aa5f..805fd89 100644 --- a/meta-citadel/recipes-citadel/packagegroups/packagegroup-desktop.bb +++ b/meta-citadel/recipes-citadel/packagegroups/packagegroup-desktop.bb @@ -17,7 +17,6 @@ RDEPENDS:${PN} = "\ gdm \ plymouth \ shared-mime-info \ - pulseaudio-server \ sound-theme-freedesktop \ iso-codes \ libgudev \ @@ -45,4 +44,10 @@ RDEPENDS:${PN} = "\ librsvg \ librsvg-gtk \ glib-2.0-utils \ + virglrenderer \ + rtkit \ + libcanberra-pulse \ + pipewire-tools \ + pipewire-spa-tools \ + alsa-utils \ " diff --git a/meta-citadel/recipes-support/drm/libdrm_2.4.120.bb b/meta-citadel/recipes-support/drm/libdrm_2.4.120.bb new file mode 100644 index 0000000..18b3256 --- /dev/null +++ b/meta-citadel/recipes-support/drm/libdrm_2.4.120.bb @@ -0,0 +1,59 @@ +SUMMARY = "Userspace interface to the kernel DRM services" +DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \ +stands for \"Direct Rendering Manager\", which is the kernel portion of the \ +\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \ +accelerated OpenGL drivers." +HOMEPAGE = "http://dri.freedesktop.org" +SECTION = "x11/base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71" +PROVIDES = "drm" +DEPENDS = "libpthread-stubs" + +SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \ + " + +SRC_URI[sha256sum] = "3bf55363f76c7250946441ab51d3a6cc0ae518055c0ff017324ab76cdefb327a" + +inherit meson pkgconfig manpages + +PACKAGECONFIG ??= "intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv tests install-test-programs" +PACKAGECONFIG[intel] = "-Dintel=enabled,-Dintel=disabled,libpciaccess" +PACKAGECONFIG[radeon] = "-Dradeon=enabled,-Dradeon=disabled" +PACKAGECONFIG[amdgpu] = "-Damdgpu=enabled,-Damdgpu=disabled" +PACKAGECONFIG[nouveau] = "-Dnouveau=enabled,-Dnouveau=disabled" +PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=enabled,-Dvmwgfx=disabled" +PACKAGECONFIG[omap] = "-Domap=enabled,-Domap=disabled" +PACKAGECONFIG[exynos] = "-Dexynos=enabled,-Dexynos=disabled" +PACKAGECONFIG[freedreno] = "-Dfreedreno=enabled,-Dfreedreno=disabled" +PACKAGECONFIG[tegra] = "-Dtegra=enabled,-Dtegra=disabled" +PACKAGECONFIG[vc4] = "-Dvc4=enabled,-Dvc4=disabled" +PACKAGECONFIG[etnaviv] = "-Detnaviv=enabled,-Detnaviv=disabled" +PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false" +PACKAGECONFIG[valgrind] = "-Dvalgrind=enabled,-Dvalgrind=disabled,valgrind" +PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false" +PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=enabled,-Dcairo-tests=disabled" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false" +PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev" +PACKAGECONFIG[manpages] = "-Dman-pages=enabled,-Dman-pages=disabled,libxslt-native xmlto-native python3-docutils-native" + +ALLOW_EMPTY:${PN}-drivers = "1" +PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ + ${PN}-intel ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +RRECOMMENDS:${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \ + ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +FILES:${PN}-tests = "${bindir}/*" +FILES:${PN}-radeon = "${libdir}/libdrm_radeon.so.*" +FILES:${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*" +FILES:${PN}-omap = "${libdir}/libdrm_omap.so.*" +FILES:${PN}-intel = "${libdir}/libdrm_intel.so.*" +FILES:${PN}-exynos = "${libdir}/libdrm_exynos.so.*" +FILES:${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*" +FILES:${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids" +FILES:${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-citadel/recipes-support/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch b/meta-citadel/recipes-support/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch new file mode 100644 index 0000000..f6d95c8 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch @@ -0,0 +1,56 @@ +From fe4600de549549fbb3033fc1b37904ba6b3fe2af Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Fri, 8 Mar 2024 15:53:11 +0100 +Subject: [PATCH] Revert "meson: do not pull in clc for clover" + +This reverts commit 815a6647eb1383e9dc704ffcc266d85f3b13338a. +Upstream-Status: Inappropriate [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27783/diffs?commit_id=a976f2c9f0c07f9e06cc9affd9124b45bc60c2bd] + +Once the merge request above was added, it will only be possible to provide opencl spir-v with gallium-rusticl=true. This is not yet supported in the mesa recipe. +For now reverting this commit allows to still use clover with opencl-spirv, which would otherwise be broken starting from mesa 24.0.2. + +After it was merged, this patch needs to be removed and rusticl support will be required + +Signed-off-by: Markus Volk +--- + meson.build | 3 ++- + src/compiler/meson.build | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index 25e92ea5f95..3956e19c08f 100644 +--- a/meson.build ++++ b/meson.build +@@ -818,6 +818,7 @@ if _opencl != 'disabled' + error('The Clover OpenCL state tracker requires rtti') + endif + ++ with_clc = true + with_gallium_opencl = true + with_opencl_icd = _opencl == 'icd' + else +@@ -842,7 +843,7 @@ if with_gallium_rusticl + endif + + dep_clc = null_dep +-if with_gallium_opencl or with_clc ++if with_clc + dep_clc = dependency('libclc') + endif + +diff --git a/src/compiler/meson.build b/src/compiler/meson.build +index 8d73544c6d8..1dae56d1b2b 100644 +--- a/src/compiler/meson.build ++++ b/src/compiler/meson.build +@@ -79,7 +79,7 @@ subdir('nir') + + subdir('spirv') + +-if with_clc ++if with_opencl_spirv + subdir('clc') + endif + if with_gallium +-- +2.44.0 + diff --git a/meta-citadel/recipes-support/mesa/files/0001-drisw-fix-build-without-dri3.patch b/meta-citadel/recipes-support/mesa/files/0001-drisw-fix-build-without-dri3.patch new file mode 100644 index 0000000..ab16152 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/files/0001-drisw-fix-build-without-dri3.patch @@ -0,0 +1,58 @@ +From 4bd15a419e892da843489c374c58c5b29c40b5d6 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Tue, 6 Feb 2024 09:47:09 +0100 +Subject: [PATCH 1/2] drisw: fix build without dri3 + +commit 1887368df41 ("glx/sw: check for modifier support in the kopper path") +added dri3_priv.h header and dri3_check_multibuffer() function in drisw that +can be build without dri3. + + i686-buildroot-linux-gnu/bin/ld: src/glx/libglx.a.p/drisw_glx.c.o: in function `driswCreateScreenDriver': + drisw_glx.c:(.text.driswCreateScreenDriver+0x3a0): undefined reference to `dri3_check_multibuffer' + collect2: error: ld returned 1 exit status + +Add HAVE_DRI3 guard around dri3_priv.h header and the zink code using +dri3_check_multibuffer(). + +Fixes: 1887368df41 ("glx/sw: check for modifier support in the kopper path") + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478] +Signed-off-by: Romain Naour +Signed-off-by: Khem Raj +--- + src/glx/drisw_glx.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c +index 3d3f752..4b19e2d 100644 +--- a/src/glx/drisw_glx.c ++++ b/src/glx/drisw_glx.c +@@ -32,7 +32,9 @@ + #include + #include "dri_common.h" + #include "drisw_priv.h" ++#ifdef HAVE_DRI3 + #include "dri3_priv.h" ++#endif + #include + #include + #include +@@ -995,6 +997,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv, + goto handle_error; + } + ++#ifdef HAVE_DRI3 + if (pdpyp->zink) { + bool err; + psc->has_multibuffer = dri3_check_multibuffer(priv->dpy, &err); +@@ -1005,6 +1008,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv, + goto handle_error; + } + } ++#endif + + glx_config_destroy_list(psc->base.configs); + psc->base.configs = configs; +-- +2.44.0 + diff --git a/meta-citadel/recipes-support/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch b/meta-citadel/recipes-support/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch new file mode 100644 index 0000000..ceb0153 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch @@ -0,0 +1,40 @@ +From 3e1e5c475b52651657c906e6b03ee13567cccdd7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 23 Jun 2023 01:20:38 -0700 +Subject: [PATCH] gallium: Fix build with llvm 17 + +These headers are not available for C files in llvm 17+ +and they seem to be not needed to compile after all with llvm 17 +so add conditions to exclude them for llvm >= 17 + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23827] +Signed-off-by: Khem Raj +--- + src/gallium/auxiliary/gallivm/lp_bld_init.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c +index cd2108f..b1a4d03 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c +@@ -46,15 +46,19 @@ + #if GALLIVM_USE_NEW_PASS == 1 + #include + #elif GALLIVM_HAVE_CORO == 1 ++#if LLVM_VERSION_MAJOR < 17 + #include +-#if LLVM_VERSION_MAJOR >= 7 ++#endif ++#if LLVM_VERSION_MAJOR >= 7 && LLVM_VERSION_MAJOR < 17 + #include + #endif + #if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) + #include + #endif ++#if LLVM_VERSION_MAJOR < 17 + #include + #endif ++#endif + + unsigned gallivm_perf = 0; + diff --git a/meta-citadel/recipes-support/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch b/meta-citadel/recipes-support/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch new file mode 100644 index 0000000..baa98a0 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch @@ -0,0 +1,24 @@ +From 02cc21800fe29f566add525e63f619c0536d6e7b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 13 Jan 2020 15:23:47 -0800 +Subject: [PATCH] meson misdetects 64bit atomics on mips/clang + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/util/u_atomic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/util/u_atomic.c b/src/util/u_atomic.c +index 5a5eab4..e499516 100644 +--- a/src/util/u_atomic.c ++++ b/src/util/u_atomic.c +@@ -21,7 +21,7 @@ + * IN THE SOFTWARE. + */ + +-#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD) ++#if !defined(__clang__) && defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD) + + #include + #include diff --git a/meta-citadel/recipes-support/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/meta-citadel/recipes-support/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch new file mode 100644 index 0000000..7be7d81 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch @@ -0,0 +1,42 @@ +From e8ec6b1cc5e401ba719095722d8b317d755ae613 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Thu, 14 Nov 2019 13:04:49 -0800 +Subject: [PATCH] meson.build: check for all linux host_os combinations + +Make sure that we are also looking for our host_os combinations like +linux-musl etc. when assuming support for DRM/KMS. + +Also delete a duplicate line. + +Upstream-Status: Pending + +Signed-off-by: Anuj Mittal +Signed-off-by: Fabio Berton +Signed-off-by: Otavio Salvador +Signed-off-by: Alistair Francis +--- + meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index 133fd9a..817861e 100644 +--- a/meson.build ++++ b/meson.build +@@ -128,7 +128,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2 + # Only build shared_glapi if at least one OpenGL API is enabled + with_shared_glapi = with_shared_glapi and with_any_opengl + +-system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos', 'android', 'managarm'].contains(host_machine.system()) ++system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos', 'android', 'managarm'].contains(host_machine.system()) or host_machine.system().startswith('linux') + + gallium_drivers = get_option('gallium-drivers') + if gallium_drivers.contains('auto') +@@ -997,7 +997,7 @@ if cc.has_function('fmemopen') + endif + + # TODO: this is very incomplete +-if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android', 'managarm'].contains(host_machine.system()) ++if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android', 'managarm'].contains(host_machine.system()) or host_machine.system().startswith('linux') + pre_args += '-D_GNU_SOURCE' + elif host_machine.system() == 'sunos' + pre_args += '-D__EXTENSIONS__' diff --git a/meta-citadel/recipes-support/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch b/meta-citadel/recipes-support/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch new file mode 100644 index 0000000..036a0b4 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch @@ -0,0 +1,42 @@ +From 62495ebb977866c52d5bed8499a547c49f0d9bc1 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Tue, 6 Feb 2024 09:47:10 +0100 +Subject: [PATCH 2/2] glxext: don't try zink if not enabled in mesa + +Commit 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers") +added an automatic zink fallback even when the zink gallium is not +enabled at build time. + +It leads to unexpected error log while loading drisw driver and +zink is not installed on the rootfs: + + MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so + +Fixes: 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers") + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478] +Signed-off-by: Romain Naour +Signed-off-by: Khem Raj +--- + src/glx/glxext.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/glx/glxext.c b/src/glx/glxext.c +index 05c825a..7a06aa9 100644 +--- a/src/glx/glxext.c ++++ b/src/glx/glxext.c +@@ -908,9 +908,11 @@ __glXInitialize(Display * dpy) + #endif /* HAVE_DRI3 */ + if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false)) + dpyPriv->dri2Display = dri2CreateDisplay(dpy); ++#if defined(HAVE_ZINK) + if (!dpyPriv->dri3Display && !dpyPriv->dri2Display) + try_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) && + !getenv("GALLIUM_DRIVER"); ++#endif /* HAVE_ZINK */ + } + #endif /* GLX_USE_DRM */ + if (glx_direct) +-- +2.44.0 + diff --git a/meta-citadel/recipes-support/mesa/libglu_9.0.3.bb b/meta-citadel/recipes-support/mesa/libglu_9.0.3.bb new file mode 100644 index 0000000..8151727 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/libglu_9.0.3.bb @@ -0,0 +1,31 @@ +SUMMARY = "The OpenGL utility toolkit" +DESCRIPTION = "GLU is a utility toolkit used with OpenGL implementations" + +HOMEPAGE = "http://mesa3d.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://include/GL/glu.h;endline=29;md5=6b79c570f644363b356456e7d44471d9 \ + file://src/libtess/tess.c;endline=29;md5=6b79c570f644363b356456e7d44471d9" + +# Epoch as this used to be part of mesa +PE = "2" + +SRC_URI = "https://mesa.freedesktop.org/archive/glu/glu-${PV}.tar.xz \ + " + +SRC_URI[sha256sum] = "bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f" + +S = "${WORKDIR}/glu-${PV}" + +DEPENDS = "virtual/libgl" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON = "-Dgl_provider=gl" + +# Requires libGL.so which is provided by mesa when x11 in DISTRO_FEATURES +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +# Remove the mesa-glu dependency in mesa-glu-dev, as mesa-glu is empty +DEV_PKG_DEPENDENCY = "" diff --git a/meta-citadel/recipes-support/mesa/mesa-demos/0001-mesa-demos-Add-missing-data-files.patch b/meta-citadel/recipes-support/mesa/mesa-demos/0001-mesa-demos-Add-missing-data-files.patch new file mode 100644 index 0000000..93ee9c2 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/mesa-demos/0001-mesa-demos-Add-missing-data-files.patch @@ -0,0 +1,624 @@ +From b695c3a3fa3f4cd48c13aa26542110de27075518 Mon Sep 17 00:00:00 2001 +From: Drew Moseley +Date: Mon, 12 May 2014 15:22:32 -0400 +Subject: [PATCH 1/9] mesa-demos: Add missing data files. + +Add some data files that are present in the git repository: + http://cgit.freedesktop.org/mesa/demos/tree/?id=mesa-demos-8.1.0 +but not in the release tarball + ftp://ftp.freedesktop.org/pub/mesa/demos/8.1.0/mesa-demos-8.1.0.tar.bz2 + +Upstream-Status: Backport +Signed-off-by: Drew Moseley +Signed-off-by: Martin Jansa +--- + src/fpglsl/depth-read.glsl | 4 + + src/fpglsl/infinite-loop.glsl | 7 + + src/glsl/CH11-bumpmaptex.frag | 47 +++++++ + src/glsl/blinking-teapot.frag | 31 +++++ + src/glsl/blinking-teapot.vert | 16 +++ + src/glsl/convolution.frag | 21 +++ + src/glsl/simplex-noise.glsl | 279 ++++++++++++++++++++++++++++++++++++++++ + src/glsl/skinning.vert | 24 ++++ + src/perf/glslstateschange1.frag | 19 +++ + src/perf/glslstateschange1.vert | 14 ++ + src/perf/glslstateschange2.frag | 17 +++ + src/perf/glslstateschange2.vert | 14 ++ + src/vpglsl/infinite-loop.glsl | 8 ++ + 13 files changed, 501 insertions(+) + create mode 100644 src/fpglsl/depth-read.glsl + create mode 100644 src/fpglsl/infinite-loop.glsl + create mode 100644 src/glsl/CH11-bumpmaptex.frag + create mode 100644 src/glsl/blinking-teapot.frag + create mode 100644 src/glsl/blinking-teapot.vert + create mode 100644 src/glsl/convolution.frag + create mode 100644 src/glsl/simplex-noise.glsl + create mode 100644 src/glsl/skinning.vert + create mode 100644 src/perf/glslstateschange1.frag + create mode 100644 src/perf/glslstateschange1.vert + create mode 100644 src/perf/glslstateschange2.frag + create mode 100644 src/perf/glslstateschange2.vert + create mode 100644 src/vpglsl/infinite-loop.glsl + +diff --git a/src/fpglsl/depth-read.glsl b/src/fpglsl/depth-read.glsl +new file mode 100644 +index 0000000..86d298e +--- /dev/null ++++ b/src/fpglsl/depth-read.glsl +@@ -0,0 +1,4 @@ ++void main() ++{ ++ gl_FragColor = gl_FragCoord.zzzz; ++} +diff --git a/src/fpglsl/infinite-loop.glsl b/src/fpglsl/infinite-loop.glsl +new file mode 100644 +index 0000000..c6dc6ee +--- /dev/null ++++ b/src/fpglsl/infinite-loop.glsl +@@ -0,0 +1,7 @@ ++void main() { ++ vec4 sum = vec4(0); ++ for (int i = 1; i != 2; i += 2) { ++ sum += vec4(0.1, 0.1, 0.1, 0.1); ++ } ++ gl_FragColor = sum; ++} +diff --git a/src/glsl/CH11-bumpmaptex.frag b/src/glsl/CH11-bumpmaptex.frag +new file mode 100644 +index 0000000..b5dabb4 +--- /dev/null ++++ b/src/glsl/CH11-bumpmaptex.frag +@@ -0,0 +1,47 @@ ++// ++// Fragment shader for procedural bumps ++// ++// Authors: John Kessenich, Randi Rost ++// ++// Copyright (c) 2002-2006 3Dlabs Inc. Ltd. ++// ++// See 3Dlabs-License.txt for license information ++// ++// Texture mapping/modulation added by Brian Paul ++// ++ ++varying vec3 LightDir; ++varying vec3 EyeDir; ++ ++uniform float BumpDensity; // = 16.0 ++uniform float BumpSize; // = 0.15 ++uniform float SpecularFactor; // = 0.5 ++ ++uniform sampler2D Tex; ++ ++void main() ++{ ++ vec3 ambient = vec3(0.25); ++ vec3 litColor; ++ vec2 c = BumpDensity * gl_TexCoord[0].st; ++ vec2 p = fract(c) - vec2(0.5); ++ ++ float d, f; ++ d = p.x * p.x + p.y * p.y; ++ f = inversesqrt(d + 1.0); ++ ++ if (d >= BumpSize) ++ { p = vec2(0.0); f = 1.0; } ++ ++ vec3 SurfaceColor = texture2D(Tex, gl_TexCoord[0].st).xyz; ++ ++ vec3 normDelta = vec3(p.x, p.y, 1.0) * f; ++ litColor = SurfaceColor * (ambient + max(dot(normDelta, LightDir), 0.0)); ++ vec3 reflectDir = reflect(LightDir, normDelta); ++ ++ float spec = max(dot(EyeDir, reflectDir), 0.0); ++ spec *= SpecularFactor; ++ litColor = min(litColor + spec, vec3(1.0)); ++ ++ gl_FragColor = vec4(litColor, 1.0); ++} +diff --git a/src/glsl/blinking-teapot.frag b/src/glsl/blinking-teapot.frag +new file mode 100644 +index 0000000..0db060b +--- /dev/null ++++ b/src/glsl/blinking-teapot.frag +@@ -0,0 +1,31 @@ ++#extension GL_ARB_uniform_buffer_object : enable ++ ++layout(std140) uniform colors0 ++{ ++ float DiffuseCool; ++ float DiffuseWarm; ++ vec3 SurfaceColor; ++ vec3 WarmColor; ++ vec3 CoolColor; ++ vec4 some[8]; ++}; ++ ++varying float NdotL; ++varying vec3 ReflectVec; ++varying vec3 ViewVec; ++ ++void main (void) ++{ ++ ++ vec3 kcool = min(CoolColor + DiffuseCool * SurfaceColor, 1.0); ++ vec3 kwarm = min(WarmColor + DiffuseWarm * SurfaceColor, 1.0); ++ vec3 kfinal = mix(kcool, kwarm, NdotL); ++ ++ vec3 nreflect = normalize(ReflectVec); ++ vec3 nview = normalize(ViewVec); ++ ++ float spec = max(dot(nreflect, nview), 0.0); ++ spec = pow(spec, 32.0); ++ ++ gl_FragColor = vec4 (min(kfinal + spec, 1.0), 1.0); ++} +diff --git a/src/glsl/blinking-teapot.vert b/src/glsl/blinking-teapot.vert +new file mode 100644 +index 0000000..397d733 +--- /dev/null ++++ b/src/glsl/blinking-teapot.vert +@@ -0,0 +1,16 @@ ++vec3 LightPosition = vec3(0.0, 10.0, 4.0); ++ ++varying float NdotL; ++varying vec3 ReflectVec; ++varying vec3 ViewVec; ++ ++void main(void) ++{ ++ vec3 ecPos = vec3 (gl_ModelViewMatrix * gl_Vertex); ++ vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal); ++ vec3 lightVec = normalize(LightPosition - ecPos); ++ ReflectVec = normalize(reflect(-lightVec, tnorm)); ++ ViewVec = normalize(-ecPos); ++ NdotL = (dot(lightVec, tnorm) + 1.0) * 0.5; ++ gl_Position = ftransform(); ++} +diff --git a/src/glsl/convolution.frag b/src/glsl/convolution.frag +new file mode 100644 +index 0000000..e49b8ac +--- /dev/null ++++ b/src/glsl/convolution.frag +@@ -0,0 +1,21 @@ ++ ++const int KernelSize = 9; ++ ++//texture offsets ++uniform vec2 Offset[KernelSize]; ++//convolution kernel ++uniform vec4 KernelValue[KernelSize]; ++uniform sampler2D srcTex; ++uniform vec4 ScaleFactor; ++uniform vec4 BaseColor; ++ ++void main(void) ++{ ++ int i; ++ vec4 sum = vec4(0.0); ++ for (i = 0; i < KernelSize; ++i) { ++ vec4 tmp = texture2D(srcTex, gl_TexCoord[0].st + Offset[i]); ++ sum += tmp * KernelValue[i]; ++ } ++ gl_FragColor = sum * ScaleFactor + BaseColor; ++} +diff --git a/src/glsl/simplex-noise.glsl b/src/glsl/simplex-noise.glsl +new file mode 100644 +index 0000000..b6833cb +--- /dev/null ++++ b/src/glsl/simplex-noise.glsl +@@ -0,0 +1,279 @@ ++// ++// Description : Array and textureless GLSL 2D/3D/4D simplex ++// noise functions. ++// Author : Ian McEwan, Ashima Arts. ++// Maintainer : ijm ++// Lastmod : 20110223 ++// License : Copyright (C) 2011 Ashima Arts. All rights reserved. ++// Distributed under the Artistic License 2.0; See LICENCE file. ++// ++ ++#define NORMALIZE_GRADIENTS ++#undef USE_CIRCLE ++#define COLLAPSE_SORTNET ++ ++float permute(float x0,vec3 p) { ++ float x1 = mod(x0 * p.y, p.x); ++ return floor( mod( (x1 + p.z) *x0, p.x )); ++ } ++vec2 permute(vec2 x0,vec3 p) { ++ vec2 x1 = mod(x0 * p.y, p.x); ++ return floor( mod( (x1 + p.z) *x0, p.x )); ++ } ++vec3 permute(vec3 x0,vec3 p) { ++ vec3 x1 = mod(x0 * p.y, p.x); ++ return floor( mod( (x1 + p.z) *x0, p.x )); ++ } ++vec4 permute(vec4 x0,vec3 p) { ++ vec4 x1 = mod(x0 * p.y, p.x); ++ return floor( mod( (x1 + p.z) *x0, p.x )); ++ } ++ ++uniform vec4 pParam; ++// Example ++// const vec4 pParam = vec4( 17.* 17., 34., 1., 7.); ++ ++float taylorInvSqrt(float r) ++ { ++ return ( 0.83666002653408 + 0.7*0.85373472095314 - 0.85373472095314 * r ); ++ } ++ ++float simplexNoise2(vec2 v) ++ { ++ const vec2 C = vec2(0.211324865405187134, // (3.0-sqrt(3.0))/6.; ++ 0.366025403784438597); // 0.5*(sqrt(3.0)-1.); ++ const vec3 D = vec3( 0., 0.5, 2.0) * 3.14159265358979312; ++// First corner ++ vec2 i = floor(v + dot(v, C.yy) ); ++ vec2 x0 = v - i + dot(i, C.xx); ++ ++// Other corners ++ vec2 i1 = (x0.x > x0.y) ? vec2(1.,0.) : vec2(0.,1.) ; ++ ++ // x0 = x0 - 0. + 0. * C ++ vec2 x1 = x0 - i1 + 1. * C.xx ; ++ vec2 x2 = x0 - 1. + 2. * C.xx ; ++ ++// Permutations ++ i = mod(i, pParam.x); ++ vec3 p = permute( permute( ++ i.y + vec3(0., i1.y, 1. ), pParam.xyz) ++ + i.x + vec3(0., i1.x, 1. ), pParam.xyz); ++ ++#ifndef USE_CIRCLE ++// ( N points uniformly over a line, mapped onto a diamond.) ++ vec3 x = fract(p / pParam.w) ; ++ vec3 h = 0.5 - abs(x) ; ++ ++ vec3 sx = vec3(lessThan(x,D.xxx)) *2. -1.; ++ vec3 sh = vec3(lessThan(h,D.xxx)); ++ ++ vec3 a0 = x + sx*sh; ++ vec2 p0 = vec2(a0.x,h.x); ++ vec2 p1 = vec2(a0.y,h.y); ++ vec2 p2 = vec2(a0.z,h.z); ++ ++#ifdef NORMALISE_GRADIENTS ++ p0 *= taylorInvSqrt(dot(p0,p0)); ++ p1 *= taylorInvSqrt(dot(p1,p1)); ++ p2 *= taylorInvSqrt(dot(p2,p2)); ++#endif ++ ++ vec3 g = 2.0 * vec3( dot(p0, x0), dot(p1, x1), dot(p2, x2) ); ++#else ++// N points around a unit circle. ++ vec3 phi = D.z * mod(p,pParam.w) /pParam.w ; ++ vec4 a0 = sin(phi.xxyy+D.xyxy); ++ vec2 a1 = sin(phi.zz +D.xy); ++ vec3 g = vec3( dot(a0.xy, x0), dot(a0.zw, x1), dot(a1.xy, x2) ); ++#endif ++// mix ++ vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.); ++ m = m*m ; ++ return 1.66666* 70.*dot(m*m, g); ++ } ++ ++float simplexNoise3(vec3 v) ++ { ++ const vec2 C = vec2(1./6. , 1./3. ) ; ++ const vec4 D = vec4(0., 0.5, 1.0, 2.0); ++ ++// First corner ++ vec3 i = floor(v + dot(v, C.yyy) ); ++ vec3 x0 = v - i + dot(i, C.xxx) ; ++ ++// Other corners ++#ifdef COLLAPSE_SORTNET ++ vec3 g = vec3( greaterThan( x0.xyz, x0.yzx) ); ++ vec3 l = vec3( lessThanEqual( x0.xyz, x0.yzx) ); ++ ++ vec3 i1 = g.xyz * l.zxy; ++ vec3 i2 = max( g.xyz, l.zxy); ++#else ++// Keeping this clean - let the compiler optimize. ++ vec3 q1; ++ q1.x = max(x0.x, x0.y); ++ q1.y = min(x0.x, x0.y); ++ q1.z = x0.z; ++ ++ vec3 q2; ++ q2.x = max(q1.x,q1.z); ++ q2.z = min(q1.x,q1.z); ++ q2.y = q1.y; ++ ++ vec3 q3; ++ q3.y = max(q2.y, q2.z); ++ q3.z = min(q2.y, q2.z); ++ q3.x = q2.x; ++ ++ vec3 i1 = vec3(equal(q3.xxx, x0)); ++ vec3 i2 = i1 + vec3(equal(q3.yyy, x0)); ++#endif ++ ++ // x0 = x0 - 0. + 0. * C ++ vec3 x1 = x0 - i1 + 1. * C.xxx; ++ vec3 x2 = x0 - i2 + 2. * C.xxx; ++ vec3 x3 = x0 - 1. + 3. * C.xxx; ++ ++// Permutations ++ i = mod(i, pParam.x ); ++ vec4 p = permute( permute( permute( ++ i.z + vec4(0., i1.z, i2.z, 1. ), pParam.xyz) ++ + i.y + vec4(0., i1.y, i2.y, 1. ), pParam.xyz) ++ + i.x + vec4(0., i1.x, i2.x, 1. ), pParam.xyz); ++ ++// Gradients ++// ( N*N points uniformly over a square, mapped onto a octohedron.) ++ float n_ = 1.0/pParam.w ; ++ vec3 ns = n_ * D.wyz - D.xzx ; ++ ++ vec4 j = p - pParam.w*pParam.w*floor(p * ns.z *ns.z); // mod(p,N*N) ++ ++ vec4 x_ = floor(j * ns.z) ; ++ vec4 y_ = floor(j - pParam.w * x_ ) ; // mod(j,N) ++ ++ vec4 x = x_ *ns.x + ns.yyyy; ++ vec4 y = y_ *ns.x + ns.yyyy; ++ vec4 h = 1. - abs(x) - abs(y); ++ ++ vec4 b0 = vec4( x.xy, y.xy ); ++ vec4 b1 = vec4( x.zw, y.zw ); ++ ++ vec4 s0 = vec4(lessThan(b0,D.xxxx)) *2. -1.; ++ vec4 s1 = vec4(lessThan(b1,D.xxxx)) *2. -1.; ++ vec4 sh = vec4(lessThan(h, D.xxxx)); ++ ++ vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ; ++ vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ; ++ ++ vec3 p0 = vec3(a0.xy,h.x); ++ vec3 p1 = vec3(a0.zw,h.y); ++ vec3 p2 = vec3(a1.xy,h.z); ++ vec3 p3 = vec3(a1.zw,h.w); ++ ++#ifdef NORMALISE_GRADIENTS ++ p0 *= taylorInvSqrt(dot(p0,p0)); ++ p1 *= taylorInvSqrt(dot(p1,p1)); ++ p2 *= taylorInvSqrt(dot(p2,p2)); ++ p3 *= taylorInvSqrt(dot(p3,p3)); ++#endif ++ ++// Mix ++ vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.); ++ m = m * m; ++//used to be 64. ++ return 48.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1), ++ dot(p2,x2), dot(p3,x3) ) ); ++ } ++ ++vec4 grad4(float j, vec4 ip) ++ { ++ const vec4 ones = vec4(1.,1.,1.,-1.); ++ vec4 p,s; ++ ++ p.xyz = floor( fract (vec3(j) * ip.xyz) *pParam.w) * ip.z -1.0; ++ p.w = 1.5 - dot(abs(p.xyz), ones.xyz); ++ s = vec4(lessThan(p,vec4(0.))); ++ p.xyz = p.xyz + (s.xyz*2.-1.) * s.www; ++ ++ return p; ++ } ++ ++float simplexNoise4(vec4 v) ++ { ++ const vec2 C = vec2( 0.138196601125010504, // (5 - sqrt(5))/20 G4 ++ 0.309016994374947451); // (sqrt(5) - 1)/4 F4 ++// First corner ++ vec4 i = floor(v + dot(v, C.yyyy) ); ++ vec4 x0 = v - i + dot(i, C.xxxx); ++ ++// Other corners ++ ++// Force existance of strict total ordering in sort. ++ vec4 q0 = floor(x0 * 1024.0) + vec4( 0., 1./4., 2./4. , 3./4.); ++ vec4 q1; ++ q1.xy = max(q0.xy,q0.zw); // x:z y:w ++ q1.zw = min(q0.xy,q0.zw); ++ ++ vec4 q2; ++ q2.xz = max(q1.xz,q1.yw); // x:y z:w ++ q2.yw = min(q1.xz,q1.yw); ++ ++ vec4 q3; ++ q3.y = max(q2.y,q2.z); // y:z ++ q3.z = min(q2.y,q2.z); ++ q3.xw = q2.xw; ++ ++ vec4 i1 = vec4(lessThanEqual(q3.xxxx, q0)); ++ vec4 i2 = vec4(lessThanEqual(q3.yyyy, q0)); ++ vec4 i3 = vec4(lessThanEqual(q3.zzzz, q0)); ++ ++ // x0 = x0 - 0. + 0. * C ++ vec4 x1 = x0 - i1 + 1. * C.xxxx; ++ vec4 x2 = x0 - i2 + 2. * C.xxxx; ++ vec4 x3 = x0 - i3 + 3. * C.xxxx; ++ vec4 x4 = x0 - 1. + 4. * C.xxxx; ++ ++// Permutations ++ i = mod(i, pParam.x ); ++ float j0 = permute( permute( permute( permute ( ++ i.w, pParam.xyz) + i.z, pParam.xyz) ++ + i.y, pParam.xyz) + i.x, pParam.xyz); ++ vec4 j1 = permute( permute( permute( permute ( ++ i.w + vec4(i1.w, i2.w, i3.w, 1. ), pParam.xyz) ++ + i.z + vec4(i1.z, i2.z, i3.z, 1. ), pParam.xyz) ++ + i.y + vec4(i1.y, i2.y, i3.y, 1. ), pParam.xyz) ++ + i.x + vec4(i1.x, i2.x, i3.x, 1. ), pParam.xyz); ++// Gradients ++// ( N*N*N points uniformly over a cube, mapped onto a 4-octohedron.) ++ vec4 ip = pParam ; ++ ip.xy *= pParam.w ; ++ ip.x *= pParam.w ; ++ ip = vec4(1.,1.,1.,2.) / ip ; ++ ++ vec4 p0 = grad4(j0, ip); ++ vec4 p1 = grad4(j1.x, ip); ++ vec4 p2 = grad4(j1.y, ip); ++ vec4 p3 = grad4(j1.z, ip); ++ vec4 p4 = grad4(j1.w, ip); ++ ++#ifdef NORMALISE_GRADIENTS ++ p0 *= taylorInvSqrt(dot(p0,p0)); ++ p1 *= taylorInvSqrt(dot(p1,p1)); ++ p2 *= taylorInvSqrt(dot(p2,p2)); ++ p3 *= taylorInvSqrt(dot(p3,p3)); ++ p4 *= taylorInvSqrt(dot(p4,p4)); ++#endif ++ ++// Mix ++ vec3 m0 = max(0.6 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.); ++ vec2 m1 = max(0.6 - vec2(dot(x3,x3), dot(x4,x4) ), 0.); ++ m0 = m0 * m0; ++ m1 = m1 * m1; ++ return 32. * ( dot(m0*m0, vec3( dot( p0, x0 ), dot( p1, x1 ), dot( p2, x2 ))) ++ + dot(m1*m1, vec2( dot( p3, x3 ), dot( p4, x4 ) ) ) ) ; ++ ++ } ++ ++ ++ +diff --git a/src/glsl/skinning.vert b/src/glsl/skinning.vert +new file mode 100644 +index 0000000..28970ee +--- /dev/null ++++ b/src/glsl/skinning.vert +@@ -0,0 +1,24 @@ ++// Vertex weighting/blendin shader ++// Brian Paul ++// 4 Nov 2008 ++ ++uniform mat4 mat0, mat1; ++attribute float weight; ++ ++void main() ++{ ++ // simple diffuse shading ++ // Note that we should really transform the normal vector along with ++ // the postion below... someday. ++ vec3 lightVec = vec3(0, 0, 1); ++ vec3 norm = gl_NormalMatrix * gl_Normal; ++ float dot = 0.2 + max(0.0, dot(norm, lightVec)); ++ gl_FrontColor = vec4(dot); ++ ++ // compute sum of weighted transformations ++ vec4 pos0 = mat0 * gl_Vertex; ++ vec4 pos1 = mat1 * gl_Vertex; ++ vec4 pos = mix(pos0, pos1, weight); ++ ++ gl_Position = gl_ModelViewProjectionMatrix * pos; ++} +diff --git a/src/perf/glslstateschange1.frag b/src/perf/glslstateschange1.frag +new file mode 100644 +index 0000000..0839436 +--- /dev/null ++++ b/src/perf/glslstateschange1.frag +@@ -0,0 +1,19 @@ ++// Multi-texture fragment shader ++// Brian Paul ++ ++// Composite second texture over first. ++// We're assuming the 2nd texture has a meaningful alpha channel. ++ ++uniform sampler2D tex1; ++uniform sampler2D tex2; ++uniform vec4 UniV1; ++uniform vec4 UniV2; ++ ++void main() ++{ ++ vec4 t3; ++ vec4 t1 = texture2D(tex1, gl_TexCoord[0].xy); ++ vec4 t2 = texture2D(tex2, gl_TexCoord[1].xy); ++ t3 = mix(t1, t2, t2.w); ++ gl_FragColor = t3 + UniV1 + UniV2; ++} +diff --git a/src/perf/glslstateschange1.vert b/src/perf/glslstateschange1.vert +new file mode 100644 +index 0000000..cef50db +--- /dev/null ++++ b/src/perf/glslstateschange1.vert +@@ -0,0 +1,14 @@ ++// Multi-texture vertex shader ++// Brian Paul ++ ++ ++attribute vec4 TexCoord0, TexCoord1; ++attribute vec4 VertCoord; ++ ++void main() ++{ ++ gl_TexCoord[0] = TexCoord0; ++ gl_TexCoord[1] = TexCoord1; ++ // note: may use gl_Vertex or VertCoord here for testing: ++ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; ++} +diff --git a/src/perf/glslstateschange2.frag b/src/perf/glslstateschange2.frag +new file mode 100644 +index 0000000..0df0319 +--- /dev/null ++++ b/src/perf/glslstateschange2.frag +@@ -0,0 +1,17 @@ ++// Multi-texture fragment shader ++// Brian Paul ++ ++// Composite second texture over first. ++// We're assuming the 2nd texture has a meaningful alpha channel. ++ ++uniform sampler2D tex1; ++uniform sampler2D tex2; ++uniform vec4 UniV1; ++uniform vec4 UniV2; ++ ++void main() ++{ ++ vec4 t1 = texture2D(tex1, gl_TexCoord[0].xy); ++ vec4 t2 = texture2D(tex2, gl_TexCoord[1].xy); ++ gl_FragColor = t1 + t2 + UniV1 + UniV2; ++} +diff --git a/src/perf/glslstateschange2.vert b/src/perf/glslstateschange2.vert +new file mode 100644 +index 0000000..cef50db +--- /dev/null ++++ b/src/perf/glslstateschange2.vert +@@ -0,0 +1,14 @@ ++// Multi-texture vertex shader ++// Brian Paul ++ ++ ++attribute vec4 TexCoord0, TexCoord1; ++attribute vec4 VertCoord; ++ ++void main() ++{ ++ gl_TexCoord[0] = TexCoord0; ++ gl_TexCoord[1] = TexCoord1; ++ // note: may use gl_Vertex or VertCoord here for testing: ++ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; ++} +diff --git a/src/vpglsl/infinite-loop.glsl b/src/vpglsl/infinite-loop.glsl +new file mode 100644 +index 0000000..bc7ae4b +--- /dev/null ++++ b/src/vpglsl/infinite-loop.glsl +@@ -0,0 +1,8 @@ ++void main() { ++ gl_Position = gl_Vertex; ++ vec4 sum = vec4(0); ++ for (int i = 1; i != 2; i += 2) { ++ sum += vec4(0.1, 0.1, 0.1, 0.1); ++ } ++ gl_FrontColor = sum; ++} +-- +2.0.0 + diff --git a/meta-citadel/recipes-support/mesa/mesa-demos/0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch b/meta-citadel/recipes-support/mesa/mesa-demos/0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch new file mode 100644 index 0000000..f77b97f --- /dev/null +++ b/meta-citadel/recipes-support/mesa/mesa-demos/0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch @@ -0,0 +1,234 @@ +From 5e10108d76a59abac21c7e540bcfd2ddaccca2cb Mon Sep 17 00:00:00 2001 +From: Drew Moseley +Date: Fri, 9 May 2014 11:50:24 -0400 +Subject: [PATCH 4/9] Use DEMOS_DATA_DIR to locate data files + +Upstream-Status: Submitted [https://bugs.freedesktop.org/show_bug.cgi?id=78496] +Signed-off-by: Drew Moseley +--- + src/glsl/bezier.c | 2 +- + src/glsl/blinking-teapot.c | 4 ++-- + src/glsl/brick.c | 4 ++-- + src/glsl/bump.c | 6 +++--- + src/glsl/convolutions.c | 2 +- + src/glsl/mandelbrot.c | 4 ++-- + src/glsl/multitex.c | 4 ++-- + src/glsl/simplex-noise.c | 2 +- + src/glsl/skinning.c | 4 ++-- + src/glsl/texdemo1.c | 8 ++++---- + src/glsl/toyball.c | 4 ++-- + src/objviewer/objview.c | 12 ++++++------ + src/perf/glslstateschange.c | 8 ++++---- + 13 files changed, 32 insertions(+), 32 deletions(-) + +diff --git a/src/glsl/bezier.c b/src/glsl/bezier.c +index 0b56bc1..e01603d 100644 +--- a/src/glsl/bezier.c ++++ b/src/glsl/bezier.c +@@ -13,7 +13,7 @@ + #include "glut_wrap.h" + #include "shaderutil.h" + +-static const char *filename = "bezier.geom"; ++static const char *filename = DEMOS_DATA_DIR "bezier.geom"; + + static GLuint fragShader; + static GLuint vertShader; +diff --git a/src/glsl/blinking-teapot.c b/src/glsl/blinking-teapot.c +index e3bf24d..7662b1f 100644 +--- a/src/glsl/blinking-teapot.c ++++ b/src/glsl/blinking-teapot.c +@@ -63,8 +63,8 @@ init_opengl (void) + exit(1); + } + +- vshad_id = CompileShaderFile (GL_VERTEX_SHADER, "blinking-teapot.vert"); +- fshad_id = CompileShaderFile (GL_FRAGMENT_SHADER, "blinking-teapot.frag"); ++ vshad_id = CompileShaderFile (GL_VERTEX_SHADER, DEMOS_DATA_DIR "blinking-teapot.vert"); ++ fshad_id = CompileShaderFile (GL_FRAGMENT_SHADER, DEMOS_DATA_DIR "blinking-teapot.frag"); + prog_id = LinkShaders (vshad_id, fshad_id); + + UseProgram (prog_id); +diff --git a/src/glsl/brick.c b/src/glsl/brick.c +index 3021856..fe5f190 100644 +--- a/src/glsl/brick.c ++++ b/src/glsl/brick.c +@@ -14,8 +14,8 @@ + #include "shaderutil.h" + + +-static char *FragProgFile = "CH06-brick.frag"; +-static char *VertProgFile = "CH06-brick.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "CH06-brick.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "CH06-brick.vert"; + + /* program/shader objects */ + static GLuint fragShader; +diff --git a/src/glsl/bump.c b/src/glsl/bump.c +index 59f62cd..3a1b20a 100644 +--- a/src/glsl/bump.c ++++ b/src/glsl/bump.c +@@ -15,9 +15,9 @@ + #include "readtex.h" + + +-static char *FragProgFile = "CH11-bumpmap.frag"; +-static char *FragTexProgFile = "CH11-bumpmaptex.frag"; +-static char *VertProgFile = "CH11-bumpmap.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "CH11-bumpmap.frag"; ++static char *FragTexProgFile = DEMOS_DATA_DIR "CH11-bumpmaptex.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "CH11-bumpmap.vert"; + static char *TextureFile = DEMOS_DATA_DIR "tile.rgb"; + + /* program/shader objects */ +diff --git a/src/glsl/convolutions.c b/src/glsl/convolutions.c +index a120cfe..9312f00 100644 +--- a/src/glsl/convolutions.c ++++ b/src/glsl/convolutions.c +@@ -340,7 +340,7 @@ static void init(void) + + menuInit(); + readTexture(textureLocation); +- createProgram("convolution.vert", "convolution.frag"); ++ createProgram(DEMOS_DATA_DIR "convolution.vert", DEMOS_DATA_DIR "convolution.frag"); + + glEnable(GL_TEXTURE_2D); + glClearColor(1.0, 1.0, 1.0, 1.0); +diff --git a/src/glsl/mandelbrot.c b/src/glsl/mandelbrot.c +index 31ede1d..ab34a0f 100644 +--- a/src/glsl/mandelbrot.c ++++ b/src/glsl/mandelbrot.c +@@ -14,8 +14,8 @@ + #include "shaderutil.h" + + +-static char *FragProgFile = "CH18-mandel.frag"; +-static char *VertProgFile = "CH18-mandel.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "CH18-mandel.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "CH18-mandel.vert"; + + /* program/shader objects */ + static GLuint fragShader; +diff --git a/src/glsl/multitex.c b/src/glsl/multitex.c +index 262ea50..546bd27 100644 +--- a/src/glsl/multitex.c ++++ b/src/glsl/multitex.c +@@ -35,8 +35,8 @@ + + static const char *Demo = "multitex"; + +-static const char *VertFile = "multitex.vert"; +-static const char *FragFile = "multitex.frag"; ++static const char *VertFile = DEMOS_DATA_DIR "multitex.vert"; ++static const char *FragFile = DEMOS_DATA_DIR "multitex.frag"; + + static const char *TexFiles[2] = + { +diff --git a/src/glsl/simplex-noise.c b/src/glsl/simplex-noise.c +index 13fdd5d..885f01e 100644 +--- a/src/glsl/simplex-noise.c ++++ b/src/glsl/simplex-noise.c +@@ -169,7 +169,7 @@ SpecialKey(int key, int x, int y) + static void + Init(void) + { +- const char *filename = "simplex-noise.glsl"; ++ const char *filename = DEMOS_DATA_DIR "simplex-noise.glsl"; + char noiseText[10000]; + FILE *f; + int len; +diff --git a/src/glsl/skinning.c b/src/glsl/skinning.c +index bf38d77..536d475 100644 +--- a/src/glsl/skinning.c ++++ b/src/glsl/skinning.c +@@ -20,8 +20,8 @@ + #define M_PI 3.1415926535 + #endif + +-static char *FragProgFile = "skinning.frag"; +-static char *VertProgFile = "skinning.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "skinning.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "skinning.vert"; + + /* program/shader objects */ + static GLuint fragShader; +diff --git a/src/glsl/texdemo1.c b/src/glsl/texdemo1.c +index 6cde239..a082342 100644 +--- a/src/glsl/texdemo1.c ++++ b/src/glsl/texdemo1.c +@@ -35,11 +35,11 @@ + + static const char *Demo = "texdemo1"; + +-static const char *ReflectVertFile = "reflect.vert"; +-static const char *CubeFragFile = "cubemap.frag"; ++static const char *ReflectVertFile = DEMOS_DATA_DIR "reflect.vert"; ++static const char *CubeFragFile = DEMOS_DATA_DIR "cubemap.frag"; + +-static const char *SimpleVertFile = "simple.vert"; +-static const char *SimpleTexFragFile = "shadowtex.frag"; ++static const char *SimpleVertFile = DEMOS_DATA_DIR "simple.vert"; ++static const char *SimpleTexFragFile = DEMOS_DATA_DIR "shadowtex.frag"; + + static const char *GroundImage = DEMOS_DATA_DIR "tile.rgb"; + +diff --git a/src/glsl/toyball.c b/src/glsl/toyball.c +index 5f27951..4e7e832 100644 +--- a/src/glsl/toyball.c ++++ b/src/glsl/toyball.c +@@ -14,8 +14,8 @@ + #include "shaderutil.h" + + +-static char *FragProgFile = "CH11-toyball.frag"; +-static char *VertProgFile = "CH11-toyball.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "CH11-toyball.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "CH11-toyball.vert"; + + /* program/shader objects */ + static GLuint fragShader; +diff --git a/src/objviewer/objview.c b/src/objviewer/objview.c +index 6def726..78a6acf 100644 +--- a/src/objviewer/objview.c ++++ b/src/objviewer/objview.c +@@ -162,12 +162,12 @@ init_model(void) + static void + init_skybox(void) + { +- SkyboxTex = LoadSkyBoxCubeTexture("alpine_east.rgb", +- "alpine_west.rgb", +- "alpine_up.rgb", +- "alpine_down.rgb", +- "alpine_south.rgb", +- "alpine_north.rgb"); ++ SkyboxTex = LoadSkyBoxCubeTexture(DEMOS_DATA_DIR "alpine_east.rgb", ++ DEMOS_DATA_DIR "alpine_west.rgb", ++ DEMOS_DATA_DIR "alpine_up.rgb", ++ DEMOS_DATA_DIR "alpine_down.rgb", ++ DEMOS_DATA_DIR "alpine_south.rgb", ++ DEMOS_DATA_DIR "alpine_north.rgb"); + glmSpecularTexture(Model, SkyboxTex); + } + +diff --git a/src/perf/glslstateschange.c b/src/perf/glslstateschange.c +index 7422b78..dbf8332 100644 +--- a/src/perf/glslstateschange.c ++++ b/src/perf/glslstateschange.c +@@ -33,10 +33,10 @@ + #include "glmain.h" + #include "common.h" + +-static const char *VertFile1 = "glslstateschange1.vert"; +-static const char *FragFile1 = "glslstateschange1.frag"; +-static const char *VertFile2 = "glslstateschange2.vert"; +-static const char *FragFile2 = "glslstateschange2.frag"; ++static const char *VertFile1 = DEMOS_DATA_DIR "glslstateschange1.vert"; ++static const char *FragFile1 = DEMOS_DATA_DIR "glslstateschange1.frag"; ++static const char *VertFile2 = DEMOS_DATA_DIR "glslstateschange2.vert"; ++static const char *FragFile2 = DEMOS_DATA_DIR "glslstateschange2.frag"; + static struct uniform_info Uniforms1[] = { + { "tex1", 1, GL_SAMPLER_2D, { 0, 0, 0, 0 }, -1 }, + { "tex2", 1, GL_SAMPLER_2D, { 1, 0, 0, 0 }, -1 }, +-- +2.0.0 + diff --git a/meta-citadel/recipes-support/mesa/mesa-demos_8.5.0.bb b/meta-citadel/recipes-support/mesa/mesa-demos_8.5.0.bb new file mode 100644 index 0000000..12f41d7 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/mesa-demos_8.5.0.bb @@ -0,0 +1,43 @@ +SUMMARY = "Mesa demo applications" +DESCRIPTION = "This package includes the demonstration application, such as glxgears. \ +These applications can be used for Mesa validation and benchmarking." +HOMEPAGE = "http://mesa3d.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11" + +LICENSE = "MIT & PD" +LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=914225785450eff644a86c871d3ae00e \ + file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06" + +SRC_URI = "https://mesa.freedesktop.org/archive/demos/${PV}/${BPN}-${PV}.tar.bz2 \ + file://0001-mesa-demos-Add-missing-data-files.patch \ + file://0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch \ + " +SRC_URI[sha256sum] = "cea2df0a80f09a30f635c4eb1a672bf90c5ddee0b8e77f4d70041668ef71aac1" + +inherit meson pkgconfig features_check +# depends on virtual/egl, virtual/libgl ... +REQUIRED_DISTRO_FEATURES = "opengl x11" + +EXTRA_OEMESON = "-Dwith-system-data-files=true" + +PACKAGECONFIG ?= "drm egl gles1 gles2 \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)}" + +PACKAGECONFIG[drm] = "-Dlibdrm=enabled,-Dlibdrm=disabled,libdrm" +PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl" +PACKAGECONFIG[gles1] = "-Dgles1=enabled,-Dgles1=disabled,virtual/libgles1" +PACKAGECONFIG[gles2] = "-Dgles2=enabled,-Dgles2=disabled,virtual/libgles2" +PACKAGECONFIG[glut] = "-Dwith-glut=${STAGING_EXECPREFIXDIR},,freeglut" +PACKAGECONFIG[osmesa] = "-Dosmesa=enabled,-Dosmesa=disabled," +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/libgl wayland wayland-native wayland-protocols" +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libglu" + +do_install:append() { + # it can be completely empty when all PACKAGECONFIG options are disabled + rmdir --ignore-fail-on-non-empty ${D}${bindir} + + if [ -f ${D}${bindir}/clear ]; then + mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos + fi +} diff --git a/meta-citadel/recipes-support/mesa/mesa-gl_24.0.2.bb b/meta-citadel/recipes-support/mesa/mesa-gl_24.0.2.bb new file mode 100644 index 0000000..ca160f1 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/mesa-gl_24.0.2.bb @@ -0,0 +1,15 @@ +require mesa.inc + +SUMMARY += " (OpenGL only, no EGL/GLES)" + +PROVIDES = "virtual/libgl virtual/mesa" + +S = "${WORKDIR}/mesa-${PV}" + +TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" + +# At least one DRI rendering engine is required to build mesa. +# When no X11 is available, use osmesa for the rendering engine. +PACKAGECONFIG ??= "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" +PACKAGECONFIG:class-target = "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" + diff --git a/meta-citadel/recipes-support/mesa/mesa.inc b/meta-citadel/recipes-support/mesa/mesa.inc new file mode 100644 index 0000000..a8088e6 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/mesa.inc @@ -0,0 +1,369 @@ +SUMMARY = "A free implementation of the OpenGL API" +DESCRIPTION = "Mesa is an open-source implementation of the OpenGL specification - \ +a system for rendering interactive 3D graphics. \ +A variety of device drivers allows Mesa to be used in many different environments \ +ranging from software emulation to complete hardware acceleration for modern GPUs. \ +Mesa is used as part of the overall Direct Rendering Infrastructure and X.org \ +environment." + +HOMEPAGE = "http://mesa3d.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10" + +PE = "2" + +SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ + file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \ + file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ + file://0001-gallium-Fix-build-with-llvm-17.patch \ + file://0001-drisw-fix-build-without-dri3.patch \ + file://0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch \ + file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \ +" + +SRC_URI[sha256sum] = "94e28a8edad06d8ed2b83eb53f253b9eb5aa62c3080f939702e1b3039b56c9e8" + +UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" + +#because we cannot rely on the fact that all apps will use pkgconfig, +#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER +do_install:append() { + # sed can't find EGL/eglplatform.h as it doesn't get installed when glvnd enabled. + # So, check if EGL/eglplatform.h exists before running sed. + if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)} && [ -f ${D}${includedir}/EGL/eglplatform.h ]; then + sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h + fi +} + +DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native" +DEPENDS:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'mesa-native', '', d)}" +EXTRANATIVEPATH += "chrpath-native" +PROVIDES = " \ + ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', 'virtual/libglx', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \ + virtual/mesa \ + " + +inherit meson pkgconfig python3native gettext features_check + +BBCLASSEXTEND = "native nativesdk" + +ANY_OF_DISTRO_FEATURES = "opengl vulkan" + +PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)}" + +# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug' +# by default the upstream mesa sources build a debug release +# here we assume the user will want a release build by default +MESA_BUILD_TYPE ?= "release" +def check_buildtype(d): + _buildtype = d.getVar('MESA_BUILD_TYPE') + if _buildtype not in ['release', 'debug']: + bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype) + if _buildtype == 'debug': + return 'debugoptimized' + return 'plain' +MESON_BUILDTYPE = "${@check_buildtype(d)}" + +EXTRA_OEMESON = " \ + -Dshared-glapi=enabled \ + -Dglx-read-only-text=true \ + -Dplatforms='${@",".join("${PLATFORMS}".split())}' \ +" + +EXTRA_OEMESON:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=system', '', d)}" +EXTRA_OEMESON:append:class-native = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=enabled', '', d)}" + +def strip_comma(s): + return s.strip(',') + +PACKAGECONFIG = " \ + gallium \ + video-codecs \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'dri3', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \ +" + +PACKAGECONFIG:append:class-native = "gallium-llvm r600" + +# "gbm" requires "opengl" +PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" + +X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr" +# "x11" requires "opengl" +PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" +PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" + +PACKAGECONFIG[dri3] = "-Ddri3=enabled, -Ddri3=disabled, xorgproto libxshmfence" + +# Vulkan drivers need dri3 enabled +# amd could be enabled as well but requires gallium-llvm with llvm >= 3.9 +VULKAN_DRIVERS = "" +VULKAN_DRIVERS:append:x86 = ",intel,amd" +VULKAN_DRIVERS:append:x86-64 = ",intel,amd" +# i686 is a 32 bit override for mesa-native +VULKAN_DRIVERS:append:i686 = ",intel,amd" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}" +PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers" + +# mesa development and testing tools support, per driver +TOOLS = "" +TOOLS_DEPS = "" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}" + +# dependencies for tools. +TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}" + +# the fdperf tool requires libconfig (a part of meta-oe) so it needs special +# treatment in addition to the usual 'freedreno tools'. +PACKAGECONFIG[freedreno-fdperf] = ",,libconfig" + +PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}" + +PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" +PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=false, libglvnd" + +# "gles" requires "opengl" +PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled" + +# "egl" requires "opengl" +PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled" + +# "opencl" requires libclc from meta-clang and spirv-tools from OE-Core +OPENCL_NATIVE = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', '-Dopencl-native=true', '', d)}" +PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd -Dopencl-spirv=true ${OPENCL_NATIVE},-Dgallium-opencl=disabled -Dopencl-spirv=false,libclc spirv-tools python3-ply-native" + +PACKAGECONFIG[broadcom] = "" +PACKAGECONFIG[etnaviv] = "" +PACKAGECONFIG[freedreno] = "" +PACKAGECONFIG[kmsro] = "" +PACKAGECONFIG[vc4] = "" +PACKAGECONFIG[v3d] = "" +PACKAGECONFIG[zink] = "" + +GALLIUMDRIVERS = "swrast" +# gallium swrast was found to crash Xorg on startup in x32 qemu +GALLIUMDRIVERS:x86-x32 = "" +GALLIUMDRIVERS:append:x86 = ",i915,iris,crocus" +GALLIUMDRIVERS:append:x86-64 = ",i915,iris,crocus" +# i686 is a 32 bit override for mesa-native +GALLIUMDRIVERS:append:i686 = ",i915,iris,crocus" + +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}" + +# radeonsi requires LLVM +GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" +GALLIUMDRIVERS_LLVM = ",r300,nouveau${GALLIUMDRIVERS_RADEONSI}" +GALLIUMDRIVERS_LLVM:append:x86 = ",svga" +GALLIUMDRIVERS_LLVM:append:x86-64 = ",svga" +# i686 is a 32 bit override for mesa-native +GALLIUMDRIVERS_LLVM:append:i686 = ",svga" + +PACKAGECONFIG[r600] = "" +PACKAGECONFIG[virgl] = "" + +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${GALLIUMDRIVERS_LLVM}', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}" + +PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm" +PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils" +PACKAGECONFIG[xa] = "-Dgallium-xa=enabled, -Dgallium-xa=disabled" +PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial" +PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau" + +PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false" + +PACKAGECONFIG[lima] = "" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" + +PACKAGECONFIG[panfrost] = "" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" + +PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false" + +PACKAGECONFIG[osmesa] = "-Dosmesa=true,-Dosmesa=false" + +PACKAGECONFIG[perfetto] = "-Dperfetto=true,-Dperfetto=false,libperfetto" + +PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" + +PACKAGECONFIG[lmsensors] = "-Dlmsensors=enabled,-Dlmsensors=disabled,lmsensors" + +VIDEO_CODECS ?= "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'all', 'all_free', d)}" +PACKAGECONFIG[video-codecs] = "-Dvideo-codecs=${VIDEO_CODECS}, -Dvideo-codecs=''" + +# llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2) +FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer" + +CFLAGS:append:armv5 = " -DMISSING_64BIT_ATOMICS" +CFLAGS:append:armv6 = " -DMISSING_64BIT_ATOMICS" + +# Remove the mesa dependency on mesa-dev, as mesa is empty +DEV_PKG_DEPENDENCY = "" + +# Khronos documentation says that include/GLES2/gl2ext.h can be used for +# OpenGL ES 3 specification as well as for OpenGL ES 2. +# There can be applications including GLES2/gl2ext.h instead of GLES3/gl3ext.h +# meaning we should probably bring in GLES2/gl2ext.h if someone asks for +# development package of libgles3. +RDEPENDS:libgles3-mesa-dev += "libgles2-mesa-dev" + +RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools', '', d)}" + +PACKAGES =+ "libegl-mesa libegl-mesa-dev \ + libosmesa libosmesa-dev \ + libgl-mesa libgl-mesa-dev \ + libglx-mesa libglx-mesa-dev \ + libglapi libglapi-dev \ + libgbm libgbm-dev \ + libgles1-mesa libgles1-mesa-dev \ + libgles2-mesa libgles2-mesa-dev \ + libgles3-mesa libgles3-mesa-dev \ + libopencl-mesa libopencl-mesa-dev \ + libxatracker libxatracker-dev \ + mesa-megadriver mesa-vulkan-drivers \ + mesa-vdpau-drivers mesa-tools \ + " + +do_install:append () { + # Drivers never need libtool .la files + rm -f ${D}${libdir}/dri/*.la + rm -f ${D}${libdir}/egl/*.la + rm -f ${D}${libdir}/gallium-pipe/*.la + rm -f ${D}${libdir}/gbm/*.la + + # libwayland-egl has been moved to wayland 1.15+ + rm -f ${D}${libdir}/libwayland-egl* + rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc +} + +do_install:append:class-native () { + if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'true', 'false', d)}; then + install -d ${D}${bindir} + install -m0755 ${B}/src/intel/compiler/intel_clc ${D}${bindir} + fi +} + +# For the packages that make up the OpenGL interfaces, inject variables so that +# they don't get Debian-renamed (which would remove the -mesa suffix), and +# RPROVIDEs/RCONFLICTs on the generic libgl name. +python __anonymous() { + pkgconfig = (d.getVar('PACKAGECONFIG') or "").split() + suffix = "" + if "-native" in d.getVar("PN"): + suffix = "-native" + for p in (("egl", "libegl", "libegl1"), + ("opengl", "libgl", "libgl1"), + ("glvnd", "libglx",), + ("gles", "libgles1", "libglesv1-cm1"), + ("gles", "libgles2", "libglesv2-2"), + ("gles", "libgles3",), + ("opencl", "libopencl",)): + if not p[0] in pkgconfig: + continue + mlprefix = d.getVar("MLPREFIX") + fullp = mlprefix + p[1] + "-mesa" + suffix + mlprefix = d.getVar("MLPREFIX") + pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:]) + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) + + d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}mesa-megadriver" + suffix) + + # For -dev, the first element is both the Debian and original name + fullp = mlprefix + p[1] + "-mesa-dev" + suffix + pkgs = " " + mlprefix + p[1] + "-dev" + suffix + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) +} + +python mesa_populate_packages() { + pkgs = ['mesa', 'mesa-dev', 'mesa-dbg'] + for pkg in pkgs: + d.setVar("RPROVIDES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RCONFLICTS:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RREPLACES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + + import re + dri_drivers_root = oe.path.join(d.getVar('PKGD'), d.getVar('libdir'), "dri") + if os.path.isdir(dri_drivers_root): + dri_pkgs = sorted(os.listdir(dri_drivers_root)) + lib_name = d.expand("${MLPREFIX}mesa-megadriver") + for p in dri_pkgs: + m = re.match(r'^(.*)_dri\.so$', p) + if m: + pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1)) + d.appendVar("RPROVIDES:%s" % lib_name, pkg_name) + d.appendVar("RCONFLICTS:%s" % lib_name, pkg_name) + d.appendVar("RREPLACES:%s" % lib_name, pkg_name) + + pipe_drivers_root = os.path.join(d.getVar('libdir'), "gallium-pipe") + do_split_packages(d, pipe_drivers_root, r'^pipe_(.*)\.so$', 'mesa-driver-pipe-%s', 'Mesa %s pipe driver', extra_depends='') +} + +PACKAGESPLITFUNCS =+ "mesa_populate_packages" + +PACKAGES_DYNAMIC += "^mesa-driver-.*" +PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native" + +FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d" +FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan" +FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*" +FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d" +FILES:libgbm = "${libdir}/libgbm.so.*" +FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*" +FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*" +FILES:libgl-mesa = "${libdir}/libGL.so.*" +FILES:libglx-mesa = "${libdir}/libGLX*.so.*" +FILES:libopencl-mesa = "${libdir}/libMesaOpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/mesa.icd" +FILES:libglapi = "${libdir}/libglapi.so.*" +FILES:libosmesa = "${libdir}/libOSMesa.so.*" +FILES:libxatracker = "${libdir}/libxatracker.so.*" + +FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/vulkan ${libdir}/vdpau/*.so" +FILES:libegl-mesa-dev = "${libdir}/libEGL*.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" +FILES:libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h" +FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc" +FILES:libglx-mesa-dev = "${libdir}/libGLX*.*" +FILES:libglapi-dev = "${libdir}/libglapi.*" +FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc" +FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc" +FILES:libgles3-mesa-dev = "${includedir}/GLES3" +FILES:libopencl-mesa-dev = "${libdir}/libMesaOpenCL.so" +FILES:libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/GL/osmesa.h ${libdir}/pkgconfig/osmesa.pc" +FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \ + ${includedir}/xa_tracker.h ${includedir}/xa_composite.h ${includedir}/xa_context.h \ + ${libdir}/pkgconfig/xatracker.pc" +# catch all to get all the tools and data +FILES:${PN}-tools = "${bindir} ${datadir}" +ALLOW_EMPTY:${PN}-tools = "1" + +# Fix upgrade path from mesa to mesa-megadriver +RREPLACES:mesa-megadriver = "mesa" +RCONFLICTS:mesa-megadriver = "mesa" +RPROVIDES:mesa-megadriver = "mesa" diff --git a/meta-citadel/recipes-support/mesa/mesa_24.0.2.bb b/meta-citadel/recipes-support/mesa/mesa_24.0.2.bb new file mode 100644 index 0000000..96e8aa3 --- /dev/null +++ b/meta-citadel/recipes-support/mesa/mesa_24.0.2.bb @@ -0,0 +1,2 @@ +require ${BPN}.inc + diff --git a/meta-citadel/recipes-support/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch b/meta-citadel/recipes-support/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch new file mode 100644 index 0000000..3e12495 --- /dev/null +++ b/meta-citadel/recipes-support/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch @@ -0,0 +1,28 @@ +From dec8cca59124d7f8796b54902482ceb295a71b51 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 6 Jan 2020 12:44:42 +0100 +Subject: [PATCH] meson.build: use 'python3' directly for python + +This avoids a dependency on target python (due to meson probing +its configuration). + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 9f91ff2f..2391f89d 100644 +--- a/meson.build ++++ b/meson.build +@@ -74,7 +74,7 @@ flags = [ + + add_project_arguments(cc.get_supported_arguments(flags), language : 'c') + +-prog_python = import('python').find_installation('python3') ++prog_python = 'python3' + + not_found = dependency('', required: false) + libdrm_dep = dependency('libdrm', version : '>=2.4.50', required: get_option('drm').enabled() or get_option('venus')) diff --git a/meta-citadel/recipes-support/virglrenderer/virglrenderer_1.0.1.bb b/meta-citadel/recipes-support/virglrenderer/virglrenderer_1.0.1.bb new file mode 100644 index 0000000..0501b0c --- /dev/null +++ b/meta-citadel/recipes-support/virglrenderer/virglrenderer_1.0.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "VirGL virtual OpenGL renderer" +DESCRIPTION = "Virgil is a research project to investigate the possibility of \ +creating a virtual 3D GPU for use inside qemu virtual machines, that allows \ +the guest operating system to use the capabilities of the host GPU to \ +accelerate 3D rendering." +HOMEPAGE = "https://virgil3d.github.io/" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" + +DEPENDS = "libdrm libepoxy virtual/egl virtual/libgbm" +SRCREV = "690680e5f0f952e22424fca1538c1b24457a0868" +SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=main;protocol=https \ + file://0001-meson.build-use-python3-directly-for-python.patch \ + " + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus', '', d)}" + +PACKAGECONFIG[venus] = "-Dvenus=true,-Dvenus=false,vulkan-loader vulkan-headers" +PACKAGECONFIG[va] = "-Dvideo=true,-Dvideo=false,libva" +PACKAGECONFIG[render-server] = "-Drender-server=true,-Drender-server=false" +PACKAGECONFIG[drm-msm-experimental] = "-Ddrm-msm-experimental=true,-Ddrm-msm-experimental=false" +PACKAGECONFIG[minigbm_allocation] = "-Dminigbm_allocation=true,-Dminigbm_allocation=false" +PACKAGECONFIG[venus-validate] = "-Dvenus-validate=true,-Dvenus-validate=false" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,libcheck" + +BBCLASSEXTEND = "native nativesdk" + +REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/meta-citadel/recipes-support/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch b/meta-citadel/recipes-support/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch deleted file mode 100644 index 86c44d4..0000000 --- a/meta-citadel/recipes-support/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c79a3fb51718c4286b74edf0f758df9219994844 Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan -Date: Wed, 14 Sep 2022 09:07:10 +0200 -Subject: [PATCH] wayland-info: Fix build without libdrm - -wayland-info can optionally use libdrm to provide a description of the -dmabuf format modifiers. - -When not using libdrm however, the build fails because "dev_t" is not -defined. - -The definition of "dev_t" comes from which is included -from , which is not included without libdrm support, hence the -build failure. - -Simply include unconditionally to make sure "dev_t" is -defined regardless of libdrm support, to fix the build failure. - -Closes: https://gitlab.freedesktop.org/wayland/wayland-utils/-/issues/6 -Signed-off-by: Olivier Fourdan -Fixes: 240cb739 - "Add support for linux_dmabuf version 4" -Reviewed-by: Simon Ser -Reviewed-by: Pekka Paalanen - -Upstream-Status: Backport [https://gitlab.freedesktop.org/wayland/wayland-utils/-/commit/baa65ba9f62e6a05c32b9202b524158a21f24245] -Signed-off-by: Alexander Kanavin ---- - wayland-info/wayland-info.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/wayland-info/wayland-info.c b/wayland-info/wayland-info.c -index 53cd04b..98ff205 100644 ---- a/wayland-info/wayland-info.c -+++ b/wayland-info/wayland-info.c -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - - #include - #if HAVE_HUMAN_FORMAT_MODIFIER diff --git a/meta-citadel/recipes-support/wayland/libinput/determinism.patch b/meta-citadel/recipes-support/wayland/libinput/determinism.patch deleted file mode 100644 index cb55403..0000000 --- a/meta-citadel/recipes-support/wayland/libinput/determinism.patch +++ /dev/null @@ -1,21 +0,0 @@ -This finds our outer git tree and that version information breaks -determinism of this recipe. Disable it. - -RP 2020/2/6 - -Upstream-Status: Pending -Signed-off-by: Richard Purdie - -Index: libinput-1.14.3/meson.build -=================================================================== ---- libinput-1.14.3.orig/meson.build -+++ libinput-1.14.3/meson.build -@@ -387,7 +387,7 @@ pkgconfig.generate( - libraries : lib_libinput - ) - --git_version_h = vcs_tag(command : ['git', 'describe'], -+git_version_h = vcs_tag(command : ['false'], - fallback : 'unknown', - input : 'src/libinput-git-version.h.in', - output :'libinput-git-version.h') diff --git a/meta-citadel/recipes-support/wayland/libinput_1.19.4.bb b/meta-citadel/recipes-support/wayland/libinput_1.25.0.bb similarity index 79% rename from meta-citadel/recipes-support/wayland/libinput_1.19.4.bb rename to meta-citadel/recipes-support/wayland/libinput_1.25.0.bb index a7d0c4b..517b247 100644 --- a/meta-citadel/recipes-support/wayland/libinput_1.19.4.bb +++ b/meta-citadel/recipes-support/wayland/libinput_1.25.0.bb @@ -10,13 +10,13 @@ SECTION = "libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=bab4ac7dc1c10bc0fb037dc76c46ef8a" -DEPENDS = "libevdev udev mtdev libcheck" +DEPENDS = "libevdev udev mtdev" -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \ +SRC_URI = "git://gitlab.freedesktop.org/libinput/libinput.git;protocol=https;branch=main \ file://run-ptest \ - file://determinism.patch \ " -SRC_URI[sha256sum] = "ff33a570b5a936c81e6c08389a8581c2665311d026ce3d225c88d09c49f9b440" +SRCREV = "3fd38d89276b679ac3565efd7c2150fd047902cb" +S = "${WORKDIR}/git" UPSTREAM_CHECK_REGEX = "libinput-(?P\d+\.\d+\.(?!9\d+)\d+)" @@ -30,15 +30,15 @@ do_configure:append() { fi } -PACKAGECONFIG ??= "" +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" +PACKAGECONFIG[tests] = "-Dtests=true -Dinstall-tests=true,-Dtests=false -Dinstall-tests=false,libcheck" UDEVDIR = "`pkg-config --variable=udevdir udev`" EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \ -Ddocumentation=false \ - ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true -Dinstall-tests=true', '-Dtests=false -Dinstall-tests=false', d)} \ -Dzshcompletiondir=no" # package name changed in 1.8.1 upgrade: make sure package upgrades work diff --git a/meta-citadel/recipes-support/wayland/wayland-protocols_1.27.bb b/meta-citadel/recipes-support/wayland/wayland-protocols_1.33.bb similarity index 83% rename from meta-citadel/recipes-support/wayland/wayland-protocols_1.27.bb rename to meta-citadel/recipes-support/wayland/wayland-protocols_1.33.bb index 5223a13..074ea36 100644 --- a/meta-citadel/recipes-support/wayland/wayland-protocols_1.27.bb +++ b/meta-citadel/recipes-support/wayland/wayland-protocols_1.33.bb @@ -10,9 +10,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/${PV}/downloads/wayland-protocols-${PV}.tar.xz" -SRC_URI[sha256sum] = "9046f10a425d4e2a00965a03acfb6b3fb575a56503ac72c2b86821c69653375c" +SRC_URI[sha256sum] = "94f0c50b090d6e61a03f62048467b19abbe851be4e11ae7b36f65f8b98c3963a" -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tags" inherit meson pkgconfig allarch diff --git a/meta-citadel/recipes-support/wayland/wayland-utils_1.1.0.bb b/meta-citadel/recipes-support/wayland/wayland-utils_1.2.0.bb similarity index 66% rename from meta-citadel/recipes-support/wayland/wayland-utils_1.1.0.bb rename to meta-citadel/recipes-support/wayland/wayland-utils_1.2.0.bb index dcee87e..878c7a2 100644 --- a/meta-citadel/recipes-support/wayland/wayland-utils_1.1.0.bb +++ b/meta-citadel/recipes-support/wayland/wayland-utils_1.2.0.bb @@ -9,13 +9,14 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=548a66038a77415e1df51118625e832f \ " -SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \ - file://0001-wayland-info-Fix-build-without-libdrm.patch \ - " -SRC_URI[sha256sum] = "9e685863025b4feade36d53bbc8e31b43e26498be743dea84c7a84912959410a" +SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "d9278c22554586881802540751bcc42569262bf80cd9ac9b0fd12ff4bd09a9e4" -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/tags" inherit meson pkgconfig DEPENDS += "wayland wayland-native wayland-protocols" + +PACKAGECONFIG ??= "drm" +PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,libdrm" diff --git a/meta-citadel/recipes-support/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch b/meta-citadel/recipes-support/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch new file mode 100644 index 0000000..4573bb6 --- /dev/null +++ b/meta-citadel/recipes-support/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch @@ -0,0 +1,46 @@ +From ff8ecbe8891d592e645927659318720f9e190054 Mon Sep 17 00:00:00 2001 +From: Andreas Cord-Landwehr +Date: Sun, 6 Feb 2022 17:23:46 +0100 +Subject: [PATCH] Consider pkgconfig sysroot for pkgdatadir + +For libs/cflags this is done automatically, but not for manually accessed +variables. This matches what wayland-protocols does. + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/272] +--- + src/meson.build | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/meson.build b/src/meson.build +index a8a1d2b..721e151 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -65,7 +65,7 @@ if get_option('scanner') + version: meson.project_version(), + variables: [ + 'datarootdir=' + join_paths('${prefix}', get_option('datadir')), +- 'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()), ++ 'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name()), + 'bindir=' + join_paths('${prefix}', get_option('bindir')), + 'wayland_scanner=${bindir}/wayland-scanner' + ], +@@ -211,7 +211,7 @@ if get_option('libraries') + filebase: 'wayland-server', + variables: [ + 'datarootdir=' + join_paths('${prefix}', get_option('datadir')), +- 'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()) ++ 'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name()) + ] + ) + +@@ -250,7 +250,7 @@ if get_option('libraries') + filebase: 'wayland-client', + variables: [ + 'datarootdir=' + join_paths('${prefix}', get_option('datadir')), +- 'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()) ++ 'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name()) + ] + ) + +-- +2.37.2 diff --git a/meta-citadel/recipes-support/wayland/wayland_1.21.0.bb b/meta-citadel/recipes-support/wayland/wayland_1.22.0.bb similarity index 91% rename from meta-citadel/recipes-support/wayland/wayland_1.21.0.bb rename to meta-citadel/recipes-support/wayland/wayland_1.22.0.bb index ce59e60..6aa7606 100644 --- a/meta-citadel/recipes-support/wayland/wayland_1.21.0.bb +++ b/meta-citadel/recipes-support/wayland/wayland_1.22.0.bb @@ -15,10 +15,11 @@ DEPENDS = "expat libffi wayland-native" SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \ file://run-ptest \ file://0001-build-Fix-strndup-detection-on-MinGW.patch \ + file://0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch \ " -SRC_URI[sha256sum] = "6dc64d7fc16837a693a51cfdb2e568db538bfdc9f457d4656285bb9594ef11ac" +SRC_URI[sha256sum] = "1540af1ea698a471c2d8e9d288332c7e0fd360c8f1d12936ebb7e7cbc2425842" -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland/-/tags" UPSTREAM_CHECK_REGEX = "wayland-(?P\d+\.\d+\.(?!9\d+)\d+)" inherit meson pkgconfig ptest diff --git a/meta-citadel/recipes-support/wayland/weston-init.bb b/meta-citadel/recipes-support/wayland/weston-init.bb index 77dda03..024e400 100644 --- a/meta-citadel/recipes-support/wayland/weston-init.bb +++ b/meta-citadel/recipes-support/wayland/weston-init.bb @@ -9,15 +9,17 @@ SRC_URI = "file://init \ file://weston.ini \ file://weston.service \ file://weston.socket \ + file://weston-socket.sh \ file://weston-autologin \ file://weston-start" S = "${WORKDIR}" -PACKAGECONFIG ??= "" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" PACKAGECONFIG:append:qemuriscv64 = " use-pixman" PACKAGECONFIG:append:qemuppc64 = " use-pixman" +PACKAGECONFIG[xwayland] = ",," PACKAGECONFIG[no-idle-timeout] = ",," PACKAGECONFIG[use-pixman] = ",," @@ -25,32 +27,38 @@ DEFAULTBACKEND ??= "" DEFAULTBACKEND:qemuall ?= "drm" do_install() { - if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then + # Install weston-start script + if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then + install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start + sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start + sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}/${sysconfdir}/init.d/weston - fi + fi + + # Install Weston systemd service + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -D -p -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service + install -D -p -m0644 ${WORKDIR}/weston.socket ${D}${systemd_system_unitdir}/weston.socket + install -D -p -m0644 ${WORKDIR}/weston-socket.sh ${D}${sysconfdir}/profile.d/weston-socket.sh + sed -i -e s:/etc:${sysconfdir}:g \ + -e s:/usr/bin:${bindir}:g \ + -e s:/var:${localstatedir}:g \ + ${D}${systemd_system_unitdir}/weston.service + fi + + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin + fi + install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston - # Install Weston systemd service and accompanying udev rule - install -D -p -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service - install -D -p -m0644 ${WORKDIR}/weston.socket ${D}${systemd_system_unitdir}/weston.socket - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then - install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin - fi - sed -i -e s:/etc:${sysconfdir}:g \ - -e s:/usr/bin:${bindir}:g \ - -e s:/var:${localstatedir}:g \ - ${D}${systemd_system_unitdir}/weston.service - # Install weston-start script - install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start - sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start - sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start - if [ -n "${DEFAULTBACKEND}" ]; then + if [ -n "${DEFAULTBACKEND}" ]; then sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini fi - if [ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'yes', 'no', d)}" = "yes" ]; then + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini fi @@ -82,6 +90,7 @@ INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ." FILES:${PN} += "\ ${sysconfdir}/xdg/weston/weston.ini \ + ${sysconfdir}/profile.d/weston-socket.sh \ ${systemd_system_unitdir}/weston.service \ ${systemd_system_unitdir}/weston.socket \ ${sysconfdir}/default/weston \ @@ -92,6 +101,6 @@ FILES:${PN} += "\ CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston" SYSTEMD_SERVICE:${PN} = "weston.service weston.socket" -USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input weston" -GROUPADD_PARAM:${PN} = "-r wayland" +USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,wayland weston" +GROUPADD_PARAM:${PN} = "-r wayland; -r render" diff --git a/meta-citadel/recipes-support/wayland/weston-init/init b/meta-citadel/recipes-support/wayland/weston-init/init index d3b0d18..a5c54e0 100644 --- a/meta-citadel/recipes-support/wayland/weston-init/init +++ b/meta-citadel/recipes-support/wayland/weston-init/init @@ -30,7 +30,7 @@ done case "$1" in start) . /etc/profile - export HOME=ROOTHOME + export HOME=ROOTHOME WESTON_USER=weston weston-start $OPTARGS & ;; diff --git a/meta-citadel/recipes-support/wayland/weston-init/weston-socket.sh b/meta-citadel/recipes-support/wayland/weston-init/weston-socket.sh new file mode 100755 index 0000000..86389d6 --- /dev/null +++ b/meta-citadel/recipes-support/wayland/weston-init/weston-socket.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# set weston variables for use with global weston socket +global_socket="/run/wayland-0" +if [ -e "$global_socket" ]; then + weston_group=$(stat -c "%G" "$global_socket") + if [ "$(id -u)" = "0" ]; then + export WAYLAND_DISPLAY="$global_socket" + else + case "$(groups "$USER")" in + *"$weston_group"*) + export WAYLAND_DISPLAY="$global_socket" + ;; + *) + ;; + esac + fi + unset weston_group +fi +unset global_socket diff --git a/meta-citadel/recipes-support/wayland/weston/0001-libweston-tools-Include-libgen.h-for-basename-signat.patch b/meta-citadel/recipes-support/wayland/weston/0001-libweston-tools-Include-libgen.h-for-basename-signat.patch new file mode 100644 index 0000000..1d281fa --- /dev/null +++ b/meta-citadel/recipes-support/wayland/weston/0001-libweston-tools-Include-libgen.h-for-basename-signat.patch @@ -0,0 +1,48 @@ +From 2b53236ac637dfa7fb0f438f7391a73f6ef92a06 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 14 Dec 2023 09:13:54 -0800 +Subject: [PATCH] libweston,tools: Include libgen.h for basename signature + +Latest musl has removed the declaration from string.h [1] as it only +implements POSIX version alone and string.h in glibc implements GNU +version of basename. This now results in compile errors on musl. + +This might be a warning with older compilers but it is error with +Clang-17+ as it treats -Wimplicit-function-declaration as error + +[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1420] +Signed-off-by: Khem Raj +--- + libweston/backend-drm/libbacklight.c | 1 + + tools/zunitc/src/zunitc_impl.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/libweston/backend-drm/libbacklight.c b/libweston/backend-drm/libbacklight.c +index ca7f2d68..74690fa7 100644 +--- a/libweston/backend-drm/libbacklight.c ++++ b/libweston/backend-drm/libbacklight.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + #include + #include + +diff --git a/tools/zunitc/src/zunitc_impl.c b/tools/zunitc/src/zunitc_impl.c +index 18f03015..9b460fa0 100644 +--- a/tools/zunitc/src/zunitc_impl.c ++++ b/tools/zunitc/src/zunitc_impl.c +@@ -27,6 +27,7 @@ + + #include + #include ++#include + #include + #include + #include +-- +2.43.0 + diff --git a/meta-citadel/recipes-support/wayland/weston_10.0.2.bb b/meta-citadel/recipes-support/wayland/weston_13.0.0.bb similarity index 81% rename from meta-citadel/recipes-support/wayland/weston_10.0.2.bb rename to meta-citadel/recipes-support/wayland/weston_13.0.0.bb index 786d12b..b728bd0 100644 --- a/meta-citadel/recipes-support/wayland/weston_10.0.2.bb +++ b/meta-citadel/recipes-support/wayland/weston_13.0.0.bb @@ -7,15 +7,16 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ " SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \ + file://0001-libweston-tools-Include-libgen.h-for-basename-signat.patch \ file://weston.png \ file://weston.desktop \ file://xwayland.weston-start \ file://systemd-notify.weston-start \ " -SRC_URI[sha256sum] = "89646ca0d9f8d413c2767e5c3828eaa3fa149c2a105b3729a6894fa7cf1549e7" +SRC_URI[sha256sum] = "52ff1d4aa2394a2e416c85a338b627ce97fa71d43eb762fd4aaf145d36fc795a" -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/weston/-/tags" UPSTREAM_CHECK_REGEX = "weston-(?P\d+\.\d+\.(?!9\d+)\d+)" inherit meson pkgconfig useradd @@ -37,12 +38,13 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayla ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \ ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \ - ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'sysvinit', 'launcher-libseat', '', d)} \ image-jpeg \ screenshare \ shell-desktop \ shell-fullscreen \ - shell-ivi" + shell-ivi \ + shell-kiosk \ + " # Can be 'damage', 'im', 'egl', 'shm', 'touch', 'dmabuf-feedback', 'dmabuf-v4l', 'dmabuf-egl' or 'all' SIMPLECLIENTS ?= "all" @@ -51,19 +53,15 @@ SIMPLECLIENTS ?= "all" # Compositor choices # # Weston on KMS -PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev virtual/egl virtual/libgles2 virtual/libgbm mtdev" +PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev seatd virtual/egl virtual/libgles2 virtual/libgbm mtdev" # Weston on Wayland (nested Weston) PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2" # Weston on X11 -PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcb libxcursor cairo" +PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcursor" # Headless Weston PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false" -# Weston on framebuffer -PACKAGECONFIG[fbdev] = "-Ddeprecated-backend-fbdev=true,-Ddeprecated-backend-fbdev=false,udev mtdev" # Weston on RDP PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp" -# weston-launch -PACKAGECONFIG[launch] = "-Ddeprecated-weston-launch=true,-Ddeprecated-weston-launch=false,drm" # VA-API desktop recorder PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva" # Weston with EGL support @@ -72,12 +70,12 @@ PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl" PACKAGECONFIG[lcms] = "-Dcolor-management-lcms=true,-Dcolor-management-lcms=false,lcms" # Weston with webp support PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp" -# Weston with systemd-login support -PACKAGECONFIG[systemd] = "-Dsystemd=true -Dlauncher-logind=true,-Dsystemd=false -Dlauncher-logind=false,systemd dbus" +# Weston with systemd support +PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd dbus" # Weston with Xwayland support (requires X11 and Wayland) -PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false" +PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcb libxcursor xcb-util-cursor xwayland" # colord CMS support -PACKAGECONFIG[colord] = "-Dcolor-management-colord=true,-Dcolor-management-colord=false,colord" +PACKAGECONFIG[colord] = "-Ddeprecated-color-management-colord=true,-Ddeprecated-color-management-colord=false,colord" # Clients support PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLECLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false" # Virtual remote output with GStreamer on DRM backend @@ -90,10 +88,15 @@ PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false" PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false" # In-Vehicle Infotainment (IVI) shell PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false" +# Kiosk shell +PACKAGECONFIG[shell-kiosk] = "-Dshell-kiosk=true,-Dshell-kiosk=false" # JPEG image loading support PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg" -# support libseat based launch -PACKAGECONFIG[launcher-libseat] = "-Dlauncher-libseat=true,-Dlauncher-libseat=false,seatd" +# screencasting via PipeWire +PACKAGECONFIG[pipewire] = "-Dbackend-pipewire=true,-Dbackend-pipewire=false,pipewire" +# VNC remote screensharing +PACKAGECONFIG[vnc] = "-Dbackend-vnc=true,-Dbackend-vnc=false,neatvnc" + do_install:append() { # Weston doesn't need the .la files to load modules, so wipe them @@ -125,7 +128,7 @@ PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" FILES:${PN}-dev += "${libdir}/${BPN}/libexec_weston.so" -FILES:${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}" +FILES:${PN} = "${sysconfdir} ${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}" FILES:libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" SUMMARY:libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." diff --git a/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch b/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch deleted file mode 100644 index 0a1487f..0000000 --- a/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e1a12b73c25d1ad0f267b22ac5d799bc1fbd0fa4 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Tue, 30 May 2017 14:55:49 +0300 -Subject: [PATCH] Don't use AC_CANONICAL_HOST - -This won't work when building allarch (and is only used to find out if -target is windows). - -Upstream-Status: Inappropriate [embedded specific] -Signed-off-by: Jussi Kukkonen - ---- - configure.ac | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 6ddc49b..39752bb 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3,7 +3,6 @@ AC_PREREQ(2.53) - - AC_INIT([adwaita-icon-theme], [43], - [http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme]) --AC_CANONICAL_HOST - AC_CONFIG_MACRO_DIR([m4]) - AC_CONFIG_SRCDIR([index.theme.in]) - diff --git a/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme_43.bb b/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme_43.bb deleted file mode 100644 index 8cb4d14..0000000 --- a/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme_43.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "GTK+ icon theme" -DESCRIPTION = "The Adwaita icon theme is the default icon theme of the GNOME desktop \ -This package package contains an icon theme for Gtk+ 3 applications." -HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme" -BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues" -SECTION = "x11/gnome" - -LICENSE = "LGPL-3.0-only | CC-BY-SA-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \ - file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \ - file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02" - -inherit allarch autotools pkgconfig gettext gtk-icon-cache gnomebase - -SRC_URI += " file://0001-Don-t-use-AC_CANONICAL_HOST.patch" - -SRC_URI[archive.sha256sum] = "2e3ac77d32a6aa5554155df37e8f0a0dd54fc5a65fd721e88d505f970da32ec6" - -DEPENDS += "librsvg-native" - -PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}" - -RREPLACES:${PN} = "gnome-icon-theme" -RCONFLICTS:${PN} = "gnome-icon-theme" -RPROVIDES:${PN} = "gnome-icon-theme" - -FILES:${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/" -FILES:${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png" -FILES:${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/scalable/*/*-symbolic*.svg" -FILES:${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \ - ${prefix}/share/icons/Adwaita/512x512/" -FILES:${PN} = "${prefix}/share/icons/Adwaita/ \ - ${prefix}/share/pkgconfig/adwaita-icon-theme.pc" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme_46.0.bb b/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme_46.0.bb new file mode 100644 index 0000000..ed2e486 --- /dev/null +++ b/meta-gnome/recipes-gnome/adwaita-icon-theme/adwaita-icon-theme_46.0.bb @@ -0,0 +1,30 @@ +SUMMARY = "GTK+ icon theme" +DESCRIPTION = "The Adwaita icon theme is the default icon theme of the GNOME desktop \ +This package package contains an icon theme for Gtk+ 3 applications." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues" +SECTION = "x11/gnome" + +LICENSE = "LGPL-3.0-only | CC-BY-SA-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \ + file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \ + file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase allarch gtk-icon-cache + +SRC_URI[archive.sha256sum] = "4bcb539bd75d64da385d6fa08cbaa9ddeaceb6ac8e82b85ba6c41117bf5ba64e" + +DEPENDS += "librsvg-native" + +PACKAGES =+ "${PN}-cursors ${PN}-symbolic" + +RREPLACES:${PN} = "gnome-icon-theme" +RCONFLICTS:${PN} = "gnome-icon-theme" +RPROVIDES:${PN} = "gnome-icon-theme" + +FILES:${PN}-cursors = "${datadir}/icons/Adwaita/cursors/" +FILES:${PN}-symbolic = "${datadir}/icons/Adwaita/symbolic*/" +FILES:${PN}-doc += "${datadir}/licenses/adwaita-icon-theme" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-gnome/recipes-gnome/gdm/gdm_42.0.bb b/meta-gnome/recipes-gnome/gdm/gdm_45.0.1.bb similarity index 67% rename from meta-gnome/recipes-gnome/gdm/gdm_42.0.bb rename to meta-gnome/recipes-gnome/gdm/gdm_45.0.1.bb index 00fb56b..7bbaf4c 100644 --- a/meta-gnome/recipes-gnome/gdm/gdm_42.0.bb +++ b/meta-gnome/recipes-gnome/gdm/gdm_45.0.1.bb @@ -3,12 +3,14 @@ LICENSE="GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = " \ + accountsservice \ dconf-native \ gtk+3 \ - accountsservice \ + keyutils \ libcanberra \ - libpam \ libgudev \ + libpam \ + xserver-xorg \ " REQUIRED_DISTRO_FEATURES = "x11 systemd pam polkit gobject-introspection-data" @@ -16,9 +18,9 @@ GIR_MESON_OPTION = "" GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase gsettings gobject-introspection gettext systemd useradd itstool gnome-help features_check - -SRC_URI[archive.sha256sum] = "a328ac976937bec179971ff07829a1246b98ce724181c128ae32a0ba47ad3855" +inherit gnomebase gsettings pkgconfig gobject-introspection gettext systemd useradd itstool gnome-help features_check +SRC_URI = "https://download.gnome.org/sources/gdm/${@oe.utils.trim_version("${PV}", 1)}/gdm-${PV}.tar.xz" +SRC_URI[sha256sum] = "6572578c05e3c6569d6ed269f7de2aaf3a035657654586d8243907bb7a6ffa85" EXTRA_OEMESON = " \ -Dplymouth=disabled \ @@ -26,6 +28,13 @@ EXTRA_OEMESON = " \ -Dpam-mod-dir=${base_libdir}/security \ " +do_install:prepend() { + sed -i -e 's|${B}/||g' ${B}/daemon/gdm-session-worker-enum-types.c + sed -i -e 's|${B}/||g' ${B}/daemon/gdm-session-worker-enum-types.h + sed -i -e 's|${B}/||g' ${B}/daemon/gdm-session-enum-types.c + sed -i -e 's|${B}/||g' ${B}/daemon/gdm-session-enum-types.h +} + do_install:append() { rm -rf ${D}/run ${D}${localstatedir}/run } @@ -55,4 +64,3 @@ FILES:${PN} += " \ " RDEPENDS:${PN} += "${PN}-base" - diff --git a/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch b/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch index 7fc849c..12b4b08 100644 --- a/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch +++ b/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch @@ -1,4 +1,4 @@ -From 11a6b636ed27eb695b15a1ad6c00f1d1aa02735a Mon Sep 17 00:00:00 2001 +From 8a78a7996b01aba21377ceb7547da673fd30a391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 27 Oct 2021 20:18:47 +0200 Subject: [PATCH] Support cross builds a bit better @@ -12,16 +12,15 @@ Content-Transfer-Encoding: 8bit Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690] Signed-off-by: Andreas Müller - --- meson.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index ba81cd1..0e0b28e 100644 +index c9b26d6..3058e8c 100644 --- a/meson.build +++ b/meson.build -@@ -255,6 +255,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with +@@ -262,6 +262,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with --disable-debug.''') endif @@ -29,7 +28,7 @@ index ba81cd1..0e0b28e 100644 # Check if a minimal SpiderMonkey program compiles, links, and runs. If not, # it's most likely the case that SpiderMonkey was configured incorrectly, for # example by building mozglue as a shared library. -@@ -285,6 +286,7 @@ elif minimal_program.returncode() != 0 +@@ -292,6 +293,7 @@ elif minimal_program.returncode() != 0 failed to execute. Most likely you should build it with a different configuration.''' + recommended_configuration) endif @@ -37,7 +36,7 @@ index ba81cd1..0e0b28e 100644 have_printf_alternative_int = cc.compiles(''' #include -@@ -683,7 +685,7 @@ subdir('installed-tests') +@@ -690,7 +692,7 @@ subdir('installed-tests') # Note: The test program in test/ needs to be ported # to Windows before we can build it on Windows. diff --git a/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch b/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch index fc7b6ed..e932f06 100644 --- a/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch +++ b/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch @@ -1,13 +1,12 @@ -From d46af224b10d9ff9f1e88f9381fd046ad554e373 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= +From 29221ae42e424c6100b8c313d2b61801430c872d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller=20installed=5Ftests=20is=20false?= + Date: Wed, 27 Oct 2021 20:04:02 +0200 Subject: [PATCH] meson.build: Do not add dir installed-tests when MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -From: =?UTF-8?q?Andreas=20M=C3=BCller?= - installed_tests is false MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -15,16 +14,15 @@ Content-Transfer-Encoding: 8bit Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690] Signed-off-by: Andreas Müller - --- meson.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 0e0b28e..321b243 100644 +index 3058e8c..06cf8da 100644 --- a/meson.build +++ b/meson.build -@@ -681,7 +681,9 @@ endif +@@ -688,7 +688,9 @@ endif ### Tests and test setups ###################################################### diff --git a/meta-gnome/recipes-gnome/gjs/gjs_1.77.90.bb b/meta-gnome/recipes-gnome/gjs/gjs_1.80.0.bb similarity index 83% rename from meta-gnome/recipes-gnome/gjs/gjs_1.77.90.bb rename to meta-gnome/recipes-gnome/gjs/gjs_1.80.0.bb index 7def880..05f4cff 100644 --- a/meta-gnome/recipes-gnome/gjs/gjs_1.77.90.bb +++ b/meta-gnome/recipes-gnome/gjs/gjs_1.80.0.bb @@ -6,10 +6,9 @@ GNOMEBASEBUILDCLASS = "meson" DEPENDS = "mozjs-115 cairo" -inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even pkgconfig - -SRC_URI[archive.sha256sum] = "70db967ae98bde69b38475ef60bb9a3302990fa615baf46820194b302a29dbf8" +inherit gnomebase gsettings gobject-introspection gettext features_check upstream-version-is-even pkgconfig +SRC_URI[archive.sha256sum] = "0f78cd3f0e8eb446517d665e4fde1d66302b0c283bbe87b78e9cbfd4d86ed576" SRC_URI += " \ file://0001-Support-cross-builds-a-bit-better.patch \ file://0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch \ diff --git a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_45.0.bb b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_46.0.bb similarity index 76% rename from meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_45.0.bb rename to meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_46.0.bb index cfccf9b..764e06e 100644 --- a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_45.0.bb +++ b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_46.0.bb @@ -8,7 +8,7 @@ GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gettext allarch -SRC_URI[archive.sha256sum] = "cee0e688fbae5ef7a75f335ada2d10779e08ebca9445f1586de32c5a9b6dee2d" +SRC_URI[archive.sha256sum] = "4ddd3ac439a4a067876805921bb75f4d3c8b85a218d47c276dddde8928443c2e" FILES:${PN} += " \ diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.4.bb b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_46.0.bb similarity index 87% rename from meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.4.bb rename to meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_46.0.bb index 75e1244..c8559f6 100644 --- a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.4.bb +++ b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_46.0.bb @@ -24,9 +24,9 @@ GTKIC_VERSION = "4" inherit features_check gnomebase gtk-icon-cache gtk-doc gobject-introspection -REQUIRED_DISTRO_FEATURES = "x11" +REQUIRED_DISTRO_FEATURES = "x11 opengl" -SRC_URI[archive.sha256sum] = "1d6fcf1cdb6cc9923ab334a2c0bc37a2c1bba9d18de153d484eedc04f3c0bcdc" +SRC_URI[archive.sha256sum] = "13fe1e75f317acdbdf5e80c9029d2e0632d60a9ccf72a43ae36eb7545021fbef" BT_PULSE_PACKS = " \ pulseaudio-lib-bluez5-util \ diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch index d05533d..5410c86 100644 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch +++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch @@ -1,55 +1,47 @@ -From ba8aebe1259ae3f7f5a4827e5a47bb95c568b218 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 21 May 2019 16:07:46 +0200 +From 1a48df2a8da44410bbd767c2420d363f6180c79a Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Mon, 18 Mar 2024 05:50:21 +0100 Subject: [PATCH] Add meson option to pass sysroot -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -We need to pass this to meson to help it finding gdesktop-enums.h: - -| panels/background/meson.build:38:0: ERROR: File /usr/include/gsettings-desktop-schemas/gdesktop-enums.h does not exist. - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Andreas Müller +Signed-off-by: Markus Volk --- meson_options.txt | 1 + panels/background/meson.build | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) + panels/system/meson.build | 2 +- + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/meson_options.txt b/meson_options.txt -index 8ee7b6e..7e6adc6 100644 +index e53d6e3..8fae4c8 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,3 +1,4 @@ +option('oe_sysroot', type: 'string', value: '', description: 'Directory for OE-sysroot') + option('deprecated-declarations', type: 'feature', value: 'disabled', description: 'build with deprecated declaration warnings') option('documentation', type: 'boolean', value: false, description: 'build documentation') option('ibus', type: 'boolean', value: true, description: 'build with IBus support') - option('privileged_group', type: 'string', value: 'wheel', description: 'name of group that has elevated permissions') diff --git a/panels/background/meson.build b/panels/background/meson.build -index 9bf5435..96f2ac0 100644 +index 6ced050..df1f808 100644 --- a/panels/background/meson.build +++ b/panels/background/meson.build -@@ -19,7 +19,7 @@ common_sources = [] +@@ -24,7 +24,7 @@ common_sources += gnome.mkenums_simple( enums = 'gdesktop-enums-types' enums_header = files( -- gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h', -+ get_option('oe_sysroot') + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h', - 'cc-background-item.h' +- gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h' ++ get_option('oe_sysroot') + gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h' ) -diff --git a/panels/datetime/meson.build b/panels/datetime/meson.build -index 8cb3b63..1665632 100644 ---- a/panels/datetime/meson.build -+++ b/panels/datetime/meson.build -@@ -37,7 +37,7 @@ sources = files( + common_sources += gnome.mkenums( +diff --git a/panels/system/meson.build b/panels/system/meson.build +index 4fee822..979332a 100644 +--- a/panels/system/meson.build ++++ b/panels/system/meson.build +@@ -73,7 +73,7 @@ sources += gnome.compile_resources( + ) - enums = 'gdesktop-enums-types' enums_header = files( - gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h', -+ get_option('oe_sysroot') + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h', - 'cc-datetime-panel.h' ++ get_option('oe_sysroot') + gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h', + 'datetime/cc-datetime-page.h' ) diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0002-Don-t-update-icon-cache.patch b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0002-Don-t-update-icon-cache.patch index 77c9673..1ac2452 100644 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0002-Don-t-update-icon-cache.patch +++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0002-Don-t-update-icon-cache.patch @@ -1,6 +1,6 @@ -From 2b1c7399ee9f0e8c1eefbb5f5cda23afac3028f2 Mon Sep 17 00:00:00 2001 +From 2f2469b859ddc78f989e365aaffccbabc8bd465f Mon Sep 17 00:00:00 2001 From: Bruce Leidl -Date: Fri, 23 Sep 2022 10:34:36 -0400 +Date: Wed, 3 Apr 2024 10:09:32 -0400 Subject: [PATCH] Don't update icon cache --- @@ -8,10 +8,10 @@ Subject: [PATCH] Don't update icon cache 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 6b31d76..11d1b9e 100644 +index 99c4228..c1c1d4a 100644 --- a/meson.build +++ b/meson.build -@@ -339,7 +339,7 @@ endif +@@ -348,7 +348,7 @@ endif gnome.post_install( glib_compile_schemas: true, diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0003-Remove-panels-for-citadel.patch b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0003-Remove-panels-for-citadel.patch index 54d8350..754575b 100644 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0003-Remove-panels-for-citadel.patch +++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0003-Remove-panels-for-citadel.patch @@ -1,23 +1,32 @@ -From 2f5368dd4eef27ee3afaed761932601393e4875e Mon Sep 17 00:00:00 2001 +From a134a4b633953eed419b1f63ff2c5df9b19c5981 Mon Sep 17 00:00:00 2001 From: Bruce Leidl -Date: Thu, 22 Sep 2022 20:31:50 -0400 -Subject: [PATCH] Remove panels for Citadel +Date: Wed, 3 Apr 2024 11:26:34 -0400 +Subject: [PATCH] Remove panels for citadel --- + meson.build | 25 ----------- + panels/meson.build | 4 -- + panels/system/cc-system-panel.c | 72 -------------------------------- + panels/system/cc-system-panel.ui | 62 +-------------------------- + panels/system/meson.build | 36 ---------------- + shell/cc-panel-list.c | 4 -- + shell/cc-panel-loader.c | 9 ---- + tests/meson.build | 3 -- + 8 files changed, 1 insertion(+), 214 deletions(-) diff --git a/meson.build b/meson.build -index 6b31d76..d997ed2 100644 +index c1c1d4a..5134a63 100644 --- a/meson.build +++ b/meson.build -@@ -172,7 +172,6 @@ gnome_desktop_dep = dependency('gnome-desktop-4') +@@ -184,7 +184,6 @@ gnome_desktop_dep = dependency('gnome-desktop-4') gnome_bg_dep = dependency('gnome-bg-4') gnome_rr_dep = dependency('gnome-rr-4') gnome_settings_dep = dependency('gnome-settings-daemon', version: '>= 41.0') -goa_dep = dependency('goa-1.0', version: goa_req_version) - gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 42.alpha') + gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 46.beta') libxml_dep = dependency('libxml-2.0') pulse_dep = dependency('libpulse', version: pulse_req_version) -@@ -206,30 +205,6 @@ foreach polkit_file: polkit_files +@@ -218,30 +217,6 @@ foreach polkit_file: polkit_files assert(r.returncode() == 0, 'ITS support missing from polkit, please upgrade or contact your distribution') endforeach @@ -49,21 +58,18 @@ index 6b31d76..d997ed2 100644 enable_ibus = get_option('ibus') if enable_ibus diff --git a/panels/meson.build b/panels/meson.build -index 502fa3b..d8b2e25 100644 +index 3067635..6c1d9d9 100644 --- a/panels/meson.build +++ b/panels/meson.build -@@ -1,28 +1,21 @@ +@@ -1,7 +1,6 @@ subdir('common') panels = [ - 'applications', 'background', 'color', - 'datetime', -- 'default-apps', 'display', - 'info-overview', - 'keyboard', +@@ -9,12 +8,9 @@ panels = [ 'mouse', 'multitasking', 'notifications', @@ -71,53 +77,312 @@ index 502fa3b..d8b2e25 100644 'power', - 'printers', 'privacy', - 'region', -- 'removable-media', 'search', - 'sharing', 'sound', + 'system', 'universal-access', -- 'user-accounts', - 'wwan', - ] +diff --git a/panels/system/cc-system-panel.c b/panels/system/cc-system-panel.c +index 3574100..a509574 100644 +--- a/panels/system/cc-system-panel.c ++++ b/panels/system/cc-system-panel.c +@@ -30,9 +30,6 @@ + #include "about/cc-about-page.h" + #include "datetime/cc-datetime-page.h" + #include "region/cc-region-page.h" +-#include "remote-desktop/cc-remote-desktop-page.h" +-#include "remote-login/cc-remote-login-page.h" +-#include "users/cc-users-page.h" + struct _CcSystemPanel + { +@@ -40,7 +37,6 @@ struct _CcSystemPanel + + AdwNavigationView *navigation; + +- GtkWidget *remote_login_dialog; + AdwNavigationPage *software_updates_group; + }; + +@@ -68,65 +64,6 @@ gnome_software_allows_updates (void) + return g_settings_get_boolean (settings, "allow-updates"); + } + +-static gboolean +-gnome_software_exists (void) +-{ +- g_autofree gchar *path = g_find_program_in_path ("gnome-software"); +- return path != NULL; +-} +- +-static gboolean +-gpk_update_viewer_exists (void) +-{ +- g_autofree gchar *path = g_find_program_in_path ("gpk-update-viewer"); +- return path != NULL; +-} +- +-static gboolean +-show_software_updates_group (CcSystemPanel *self) +-{ +- return (gnome_software_exists () && gnome_software_allows_updates ()) || +- gpk_update_viewer_exists (); +-} +- +-static void +-cc_system_page_open_software_update (CcSystemPanel *self) +-{ +- g_autoptr(GError) error = NULL; +- gboolean ret; +- char *argv[3]; +- +- if (gnome_software_exists ()) +- { +- argv[0] = "gnome-software"; +- argv[1] = "--mode=updates"; +- argv[2] = NULL; +- } +- else +- { +- argv[0] = "gpk-update-viewer"; +- argv[1] = NULL; +- } +- +- ret = g_spawn_async (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &error); +- if (!ret) +- g_warning ("Failed to spawn %s: %s", argv[0], error->message); +-} +- +-static void +-on_secure_shell_row_clicked (CcSystemPanel *self) +-{ +- if (self->remote_login_dialog == NULL) { +- GtkWidget *parent = cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (self))); +- +- self->remote_login_dialog = g_object_new (CC_TYPE_REMOTE_LOGIN_PAGE, NULL); +- +- gtk_window_set_transient_for (GTK_WINDOW (self->remote_login_dialog), +- GTK_WINDOW (parent)); +- } +- +- gtk_window_present (GTK_WINDOW (self->remote_login_dialog)); +-} + + static void + on_subpage_set (CcSystemPanel *self) +@@ -151,17 +88,10 @@ cc_system_panel_class_init (CcSystemPanelClass *klass) + gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/system/cc-system-panel.ui"); + + gtk_widget_class_bind_template_child (widget_class, CcSystemPanel, navigation); +- gtk_widget_class_bind_template_child (widget_class, CcSystemPanel, software_updates_group); +- +- gtk_widget_class_bind_template_callback (widget_class, cc_system_page_open_software_update); +- gtk_widget_class_bind_template_callback (widget_class, on_secure_shell_row_clicked); + + g_type_ensure (CC_TYPE_ABOUT_PAGE); + g_type_ensure (CC_TYPE_DATE_TIME_PAGE); + g_type_ensure (CC_TYPE_REGION_PAGE); +- g_type_ensure (CC_TYPE_REMOTE_DESKTOP_PAGE); +- g_type_ensure (CC_TYPE_REMOTE_LOGIN_PAGE); +- g_type_ensure (CC_TYPE_USERS_PAGE); + } + + static void +@@ -170,7 +100,5 @@ cc_system_panel_init (CcSystemPanel *self) + g_resources_register (cc_system_get_resource ()); + gtk_widget_init_template (GTK_WIDGET (self)); + +- gtk_widget_set_visible (GTK_WIDGET (self->software_updates_group), show_software_updates_group (self)); +- + g_signal_connect_object (self, "notify::subpage", G_CALLBACK (on_subpage_set), self, G_CONNECT_SWAPPED); + } +diff --git a/panels/system/cc-system-panel.ui b/panels/system/cc-system-panel.ui +index 5c05149..e13de91 100644 +--- a/panels/system/cc-system-panel.ui ++++ b/panels/system/cc-system-panel.ui +@@ -40,40 +40,6 @@ + + + +- +- +- _Users +- Add and remove accounts, change password +- org.gnome.Settings-users-symbolic +- True +- True +- navigation.push +- 'users' +- +- +- +- +- +- +- R_emote Desktop +- Allow this device to be used remotely +- org.gnome.Settings-remote-desktop-symbolic +- True +- navigation.push +- 'remote-desktop' +- +- +- +- +- +- Secu_re Shell +- SSH network access +- utilities-terminal-symbolic +- True +- +- +- +- + + + _About +@@ -87,27 +53,7 @@ + + + +- +- +- +- False +- +- +- True +- Software _Updates +- update-symbolic +- True +- +- +- +- center +- adw-external-link-symbolic +- +- +- +- +- +- ++ + + + +@@ -122,12 +68,6 @@ + + + +- +- +- +- +- +- + + + +diff --git a/panels/system/meson.build b/panels/system/meson.build +index 979332a..530273d 100644 +--- a/panels/system/meson.build ++++ b/panels/system/meson.build +@@ -39,30 +39,6 @@ sources = files( + 'region/cc-region-page.c', + 'region/cc-format-chooser.c', + 'region/cc-format-preview.c', +- 'remote-desktop/cc-desktop-sharing-page.c', +- 'remote-desktop/cc-encryption-fingerprint-dialog.c', +- 'remote-desktop/cc-gnome-remote-desktop.c', +- 'remote-desktop/cc-remote-desktop-page.c', +- 'remote-desktop/cc-remote-session-page.c', +- 'remote-desktop/cc-tls-certificate.c', +- 'remote-desktop/cc-systemd-service.c', +- 'remote-login/cc-remote-login.c', +- 'remote-login/cc-remote-login-page.c', +- 'remote-login/cc-systemd-service.c', +- 'users/cc-add-user-dialog.c', +- 'users/cc-avatar-chooser.c', +- 'users/cc-crop-area.c', +- 'users/cc-entry-feedback.c', +- 'users/cc-enterprise-login-dialog.c', +- 'users/cc-fingerprint-dialog.c', +- 'users/cc-fingerprint-manager.c', +- 'users/cc-password-dialog.c', +- 'users/cc-realm-manager.c', +- 'users/cc-user-page.c', +- 'users/cc-users-page.c', +- 'users/pw-utils.c', +- 'users/run-passwd.c', +- 'users/user-utils.c', + ) + + sources += gnome.compile_resources( +@@ -97,26 +73,17 @@ sources += gnome.mkenums( + vtail: ' { 0, NULL, NULL }\n };\n etype = g_@type@_register_static ("@EnumName@", values);\n }\n return etype;\n}\n' + ) + +-libsecret_dep = dependency('libsecret-1') +-gnutls_dep = dependency('gnutls') + libgtop2 = dependency('libgtop-2.0') + udisks2 = dependency('udisks2', version: '>= 2.8.2') + +-# Kerberos support +-krb_dep = dependency('krb5', required: false) +-assert(krb_dep.found(), 'kerberos libraries not found in your path') +- + deps = common_deps + [ + accounts_dep, + gcr_dep, + gdk_pixbuf_dep, + gnome_desktop_dep, +- gnutls_dep, + gudev_dep, + libgtop2, + liblanguage_dep, +- libsecret_dep, +- krb_dep, + polkit_gobject_dep, + pwquality_dep, + udisks2, +@@ -150,9 +117,6 @@ cflags += [ + subdir('about') + subdir('datetime') + subdir('region') +-subdir('remote-desktop') +-subdir('remote-login') +-subdir('users') + + panels_libs += static_library( + cappletname, diff --git a/shell/cc-panel-list.c b/shell/cc-panel-list.c -index a39c880..9f95193 100644 +index 14ae7d0..a34c137 100644 --- a/shell/cc-panel-list.c +++ b/shell/cc-panel-list.c -@@ -365,10 +365,7 @@ static const gchar * const panel_order[] = { +@@ -376,18 +376,14 @@ static const gchar * const panel_order[] = { + + "separator", + +- "applications", "notifications", "search", - "multitasking", -- "applications", - "privacy", - "online-accounts", - "sharing", - /* Devices page */ - "sound", -@@ -376,16 +373,12 @@ static const gchar * const panel_order[] = { - "display", + "separator", + "mouse", "keyboard", -- "printers", -- "removable-media", - "wacom", "color", +- "printers", + "wacom", - /* Details page */ - "region", - "universal-access", -- "user-accounts", -- "default-apps", - "reset-settings", - "datetime", - "info-overview", + "separator", diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c -index 3b33f4e..6eff958 100644 +index 71b7686..c322944 100644 --- a/shell/cc-panel-loader.c +++ b/shell/cc-panel-loader.c -@@ -31,14 +31,12 @@ +@@ -31,7 +31,6 @@ #ifndef CC_PANEL_LOADER_NO_GTYPES /* Extension points */ @@ -125,14 +390,7 @@ index 3b33f4e..6eff958 100644 extern GType cc_background_panel_get_type (void); #ifdef BUILD_BLUETOOTH extern GType cc_bluetooth_panel_get_type (void); - #endif /* BUILD_BLUETOOTH */ - extern GType cc_color_panel_get_type (void); - extern GType cc_date_time_panel_get_type (void); --extern GType cc_default_apps_panel_get_type (void); - extern GType cc_display_panel_get_type (void); - extern GType cc_info_overview_panel_get_type (void); - extern GType cc_keyboard_panel_get_type (void); -@@ -49,17 +47,12 @@ extern GType cc_network_panel_get_type (void); +@@ -47,12 +46,9 @@ extern GType cc_network_panel_get_type (void); extern GType cc_wifi_panel_get_type (void); #endif /* BUILD_NETWORK */ extern GType cc_notifications_panel_get_type (void); @@ -140,17 +398,12 @@ index 3b33f4e..6eff958 100644 extern GType cc_power_panel_get_type (void); -extern GType cc_printers_panel_get_type (void); extern GType cc_privacy_panel_get_type (void); - extern GType cc_region_panel_get_type (void); --extern GType cc_removable_media_panel_get_type (void); extern GType cc_search_panel_get_type (void); -extern GType cc_sharing_panel_get_type (void); extern GType cc_sound_panel_get_type (void); + extern GType cc_system_panel_get_type (void); extern GType cc_ua_panel_get_type (void); --extern GType cc_user_panel_get_type (void); - #ifdef BUILD_WACOM - extern GType cc_wacom_panel_get_type (void); - #endif /* BUILD_WACOM */ -@@ -88,14 +81,12 @@ extern void cc_wwan_panel_static_init_func (void); +@@ -84,7 +80,6 @@ extern void cc_wwan_panel_static_init_func (void); static CcPanelLoaderVtable default_panels[] = { @@ -158,14 +411,7 @@ index 3b33f4e..6eff958 100644 PANEL_TYPE("background", cc_background_panel_get_type, NULL), #ifdef BUILD_BLUETOOTH PANEL_TYPE("bluetooth", cc_bluetooth_panel_get_type, NULL), - #endif - PANEL_TYPE("color", cc_color_panel_get_type, NULL), - PANEL_TYPE("datetime", cc_date_time_panel_get_type, NULL), -- PANEL_TYPE("default-apps", cc_default_apps_panel_get_type, NULL), - PANEL_TYPE("display", cc_display_panel_get_type, NULL), - PANEL_TYPE("info-overview", cc_info_overview_panel_get_type, NULL), - PANEL_TYPE("keyboard", cc_keyboard_panel_get_type, NULL), -@@ -106,17 +97,12 @@ static CcPanelLoaderVtable default_panels[] = +@@ -99,12 +94,9 @@ static CcPanelLoaderVtable default_panels[] = PANEL_TYPE("wifi", cc_wifi_panel_get_type, cc_wifi_panel_static_init_func), #endif PANEL_TYPE("notifications", cc_notifications_panel_get_type, NULL), @@ -173,24 +419,27 @@ index 3b33f4e..6eff958 100644 PANEL_TYPE("power", cc_power_panel_get_type, NULL), - PANEL_TYPE("printers", cc_printers_panel_get_type, NULL), PANEL_TYPE("privacy", cc_privacy_panel_get_type, NULL), - PANEL_TYPE("region", cc_region_panel_get_type, NULL), -- PANEL_TYPE("removable-media", cc_removable_media_panel_get_type, NULL), PANEL_TYPE("search", cc_search_panel_get_type, NULL), - PANEL_TYPE("sharing", cc_sharing_panel_get_type, NULL), PANEL_TYPE("sound", cc_sound_panel_get_type, NULL), + PANEL_TYPE("system", cc_system_panel_get_type, NULL), PANEL_TYPE("universal-access", cc_ua_panel_get_type, NULL), -- PANEL_TYPE("user-accounts", cc_user_panel_get_type, NULL), - #ifdef BUILD_WACOM - PANEL_TYPE("wacom", cc_wacom_panel_get_type, cc_wacom_panel_static_init_func), - #endif +@@ -133,7 +125,6 @@ static CcSubpageLoaderVtable default_subpages[] = + {CC_CATEGORY_SYSTEM, "about"}, + {CC_CATEGORY_SYSTEM, "datetime"}, + {CC_CATEGORY_SYSTEM, "region"}, +- {CC_CATEGORY_SYSTEM, "users"}, + }; + static CcSubpageLoaderVtable *subpages_vtable = default_subpages; + static gsize supages_vtable_len = G_N_ELEMENTS (default_subpages); diff --git a/tests/meson.build b/tests/meson.build -index 37334b7..d942799 100644 +index ad645c2..c10ce2f 100644 --- a/tests/meson.build +++ b/tests/meson.build -@@ -9,6 +9,4 @@ if not libadwaita_is_subproject +@@ -8,6 +8,3 @@ endif + if not libadwaita_is_subproject subdir('interactive-panels') endif - +- -subdir('printers') - subdir('info') -subdir('keyboard') diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_45.0.bb b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_46.0.bb similarity index 86% rename from meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_45.0.bb rename to meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_46.0.bb index 7de4f00..d1deea6 100644 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_45.0.bb +++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_46.0.bb @@ -39,12 +39,11 @@ inherit gtk-icon-cache pkgconfig gnomebase gsettings gettext upstream-version-is REQUIRED_DISTRO_FEATURES += "opengl polkit pulseaudio systemd x11" -SRC_URI += " \ - file://0001-Add-meson-option-to-pass-sysroot.patch \ - file://0002-Don-t-update-icon-cache.patch \ - file://0003-Remove-panels-for-citadel.patch \ -" -SRC_URI[archive.sha256sum] = "83df6a90f98914f2c19a872ce06562acef40927637f679c383099265ccfa42cf" +SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch \ + file://0002-Don-t-update-icon-cache.patch \ + file://0003-Remove-panels-for-citadel.patch \ + " +SRC_URI[archive.sha256sum] = "25f67de05897868b2e97eaa0ecc986a408af08d4985c8a9da44f0d7bd8fea7a4" PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}" diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-gnome-disk-utility-remove-libcanberra-dependency.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-gnome-disk-utility-remove-libcanberra-dependency.patch new file mode 100644 index 0000000..675f463 --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-gnome-disk-utility-remove-libcanberra-dependency.patch @@ -0,0 +1,135 @@ +From 36cbdd82f21e4ef37da9f05c1c5e770b6cd66df2 Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Sun, 29 May 2022 06:35:26 +0200 +Subject: [PATCH] gnome-disk-utility: remove libcanberra dependency + +libcanberra-gtk3 module isn't buildable for wayland. +Remove its dpendency. + +Signed-off-by: Markus Volk + +Upstream-Status: Inappropriate +--- + meson.build | 1 - + src/disks/gducreatediskimagedialog.c | 27 ++------------------------- + src/disks/gdurestorediskimagedialog.c | 20 +------------------- + src/disks/meson.build | 1 - + 4 files changed, 3 insertions(+), 46 deletions(-) + +diff --git a/meson.build b/meson.build +index 0daf7f82..cba6c74b 100644 +--- a/meson.build ++++ b/meson.build +@@ -72,7 +72,6 @@ dvdread_dep = dependency('dvdread', version: '>= 4.2.0') + gio_unix_dep = dependency('gio-unix-2.0', version: '>= 2.31.0') + gmodule_dep = dependency('gmodule-2.0') + gtk_dep = dependency('gtk+-3.0', version: '>= 3.16.0') +-libcanberra_dep = dependency('libcanberra-gtk3', version: '>= 0.1') + # Keep the version here synchronised with subprojects/libhandy.wrap + libhandy_dep = dependency('libhandy-1', version: '>= 1.5.0', fallback: ['libhandy', 'libhandy_dep']) + liblzma_dep = dependency('liblzma', version: '>= 5.0.5') +diff --git a/src/disks/gducreatediskimagedialog.c b/src/disks/gducreatediskimagedialog.c +index 181b2892..a22004cf 100644 +--- a/src/disks/gducreatediskimagedialog.c ++++ b/src/disks/gducreatediskimagedialog.c +@@ -21,8 +21,6 @@ + #include + #include + +-#include +- + #include "gduapplication.h" + #include "gduwindow.h" + #include "gducreatediskimagedialog.h" +@@ -297,19 +295,7 @@ create_disk_image_populate (DialogData *data) + + static void + play_read_error_sound (DialogData *data) +-{ +- const gchar *sound_message; +- +- /* Translators: A descriptive string for the sound played when +- * there's a read error that's being ignored, see +- * CA_PROP_EVENT_DESCRIPTION +- */ +- sound_message = _("Disk image read error"); +- ca_gtk_play_for_widget (GTK_WIDGET (data->window), 0, +- CA_PROP_EVENT_ID, "dialog-warning", +- CA_PROP_EVENT_DESCRIPTION, sound_message, +- NULL); +-} ++{} + + /* ---------------------------------------------------------------------------------------------------- */ + +@@ -403,16 +389,7 @@ update_job (DialogData *data, + + static void + play_complete_sound (DialogData *data) +-{ +- const gchar *sound_message; +- +- /* Translators: A descriptive string for the 'complete' sound, see CA_PROP_EVENT_DESCRIPTION */ +- sound_message = _("Disk image copying complete"); +- ca_gtk_play_for_widget (GTK_WIDGET (data->window), 0, +- CA_PROP_EVENT_ID, "complete", +- CA_PROP_EVENT_DESCRIPTION, sound_message, +- NULL); +-} ++{} + + /* ---------------------------------------------------------------------------------------------------- */ + +diff --git a/src/disks/gdurestorediskimagedialog.c b/src/disks/gdurestorediskimagedialog.c +index bccf97e9..e7ec81cb 100644 +--- a/src/disks/gdurestorediskimagedialog.c ++++ b/src/disks/gdurestorediskimagedialog.c +@@ -17,8 +17,6 @@ + #include + #include + +-#include +- + #include "gduapplication.h" + #include "gduwindow.h" + #include "gdurestorediskimagedialog.h" +@@ -606,23 +604,7 @@ update_job (DialogData *data, + + static void + play_complete_sound (DialogData *data) +-{ +- const gchar *sound_message; +- +- /* Translators: A descriptive string for the 'complete' sound, see CA_PROP_EVENT_DESCRIPTION */ +- sound_message = _("Disk image copying complete"); +- ca_gtk_play_for_widget (GTK_WIDGET (data->dialog), 0, +- CA_PROP_EVENT_ID, "complete", +- CA_PROP_EVENT_DESCRIPTION, sound_message, +- NULL); +- +- if (data->inhibit_cookie > 0) +- { +- gtk_application_uninhibit (GTK_APPLICATION (gdu_window_get_application (data->window)), +- data->inhibit_cookie); +- data->inhibit_cookie = 0; +- } +-} ++{} + + /* ---------------------------------------------------------------------------------------------------- */ + +diff --git a/src/disks/meson.build b/src/disks/meson.build +index 35b2f103..6fc367b4 100644 +--- a/src/disks/meson.build ++++ b/src/disks/meson.build +@@ -85,7 +85,6 @@ deps = [ + dvdread_dep, + gio_unix_dep, + gmodule_dep, +- libcanberra_dep, + libgdu_dep, + libhandy_dep, + liblzma_dep, +-- +2.25.1 + diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_42.0.bb b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_46.0.bb similarity index 59% rename from meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_42.0.bb rename to meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_46.0.bb index 6bf201b..8f9289b 100644 --- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_42.0.bb +++ b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_46.0.bb @@ -5,33 +5,37 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SECTION = "x11/gnome" DEPENDS = " \ + desktop-file-utils-native \ gtk+3 \ libdvdread \ - libcanberra \ libnotify \ libsecret \ libpwquality \ udisks2 \ libhandy \ + xz \ " GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gsettings gtk-icon-cache gettext features_check mime-xdg -REQUIRED_DISTRO_FEATURES = "x11 polkit" +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +REQUIRED_DISTRO_FEATURES = "polkit" -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)}" # As soon as elogind is of interest this needs rework: meson option is combo PACKAGECONFIG[systemd] = "-Dlogind=libsystemd,-Dlogind=none,systemd" +PACKAGECONFIG[x11] = ",,libcanberra" -SRC_URI += "file://0001-Don-t-display-ignored-disks.patch" - -SRC_URI[archive.sha256sum] = "1b6564454d67426322cb3bfc5a5558653bfc7dfeea2ae0825b1d08629f01090b" +SRC_URI:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'file://0001-gnome-disk-utility-remove-libcanberra-dependency.patch', '', d)}" +SRC_URI[archive.sha256sum] = "464649148c6d6771f1ac2ebfe43a4e519205b11c2d914a09f2a001821d06957d" EXTRA_OEMESON = "-Dman=false" +PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src" + FILES:${PN} += " \ ${datadir}/metainfo \ ${datadir}/dbus-1 \ diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session/0002-Add-systemd-and-session-to-desktop-files.patch b/meta-gnome/recipes-gnome/gnome-session/gnome-session/0002-Add-systemd-and-session-to-desktop-files.patch deleted file mode 100644 index d478205..0000000 --- a/meta-gnome/recipes-gnome/gnome-session/gnome-session/0002-Add-systemd-and-session-to-desktop-files.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 5ec8ebdb6ffa4af30deee2c3a594a57f9f5a9b28 Mon Sep 17 00:00:00 2001 -From: Bruce Leidl -Date: Fri, 27 May 2022 14:55:58 -0400 -Subject: [PATCH] Add --systemd and --session to desktop files - ---- - data/gnome-wayland.desktop.in.in | 2 +- - data/gnome-xorg.desktop.in.in | 2 +- - data/gnome.desktop.in.in | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/data/gnome-wayland.desktop.in.in b/data/gnome-wayland.desktop.in.in -index b48eecd..18f5c7e 100644 ---- a/data/gnome-wayland.desktop.in.in -+++ b/data/gnome-wayland.desktop.in.in -@@ -1,7 +1,7 @@ - [Desktop Entry] - Name=GNOME on Wayland - Comment=This session logs you into GNOME --Exec=@bindir@/gnome-session -+Exec=@bindir@/gnome-session --systemd --session=gnome - TryExec=@bindir@/gnome-session - Type=Application - DesktopNames=GNOME -diff --git a/data/gnome-xorg.desktop.in.in b/data/gnome-xorg.desktop.in.in -index 9a76fac..40ec660 100644 ---- a/data/gnome-xorg.desktop.in.in -+++ b/data/gnome-xorg.desktop.in.in -@@ -1,7 +1,7 @@ - [Desktop Entry] - Name=GNOME on Xorg - Comment=This session logs you into GNOME --Exec=@bindir@/gnome-session -+Exec=@bindir@/gnome-session --systemd --session=gnome - TryExec=@bindir@/gnome-session - Type=Application - DesktopNames=GNOME -diff --git a/data/gnome.desktop.in.in b/data/gnome.desktop.in.in -index 7eec1de..d83655e 100644 ---- a/data/gnome.desktop.in.in -+++ b/data/gnome.desktop.in.in -@@ -1,7 +1,7 @@ - [Desktop Entry] - Name=GNOME - Comment=This session logs you into GNOME --Exec=@bindir@/gnome-session -+Exec=@bindir@/gnome-session --systemd --session=gnome - TryExec=@bindir@/gnome-session - Type=Application - DesktopNames=GNOME diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session_42.0.bb b/meta-gnome/recipes-gnome/gnome-session/gnome-session_42.0.bb deleted file mode 100644 index 1f5fd34..0000000 --- a/meta-gnome/recipes-gnome/gnome-session/gnome-session_42.0.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "GNOME session" -LICENSE = "GPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -DEPENDS = " \ - glib-2.0-native \ - libxslt-native \ - xmlto-native \ - xtrans \ - libice \ - libsm \ - virtual/libx11 \ - gtk+3 \ - gnome-desktop \ - gsettings-desktop-schemas \ - json-glib \ -" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnomebase gettext gsettings upstream-version-is-even features_check - -REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data" - -SRC_URI += "file://0001-Patch-locking-logout-so-it-does-not-disable-shutting.patch \ - file://0002-Add-systemd-and-session-to-desktop-files.patch \ - " -SRC_URI[archive.sha256sum] = "3cca06053ab682926920951a7da95f8cc6d72da74c682c46d0a0653332969caa" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit',d)}" - -PACKAGECONFIG[consolekit] = "-Dconsolekit=true, -Dconsolekit=false, consolekit" -PACKAGECONFIG[systemd] = "-Dsystemd=true -Dsystemd_journal=true, -Dsystemd=false -Dsystemd_journal=false, systemd" - -FILES:${PN} += " \ - ${datadir}/xsessions \ - ${datadir}/wayland-sessions \ - ${systemd_user_unitdir} \ -" - -RDEPENDS:${PN} += "gnome-shell gnome-settings-daemon gsettings-desktop-schemas" diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session_46.0.bb b/meta-gnome/recipes-gnome/gnome-session/gnome-session_46.0.bb new file mode 100644 index 0000000..7a90eb5 --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-session/gnome-session_46.0.bb @@ -0,0 +1,36 @@ +SUMMARY = "GNOME session" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = " \ + glib-2.0-native \ + xtrans \ + libice \ + libsm \ + virtual/libx11 \ + gtk+3 \ + gnome-desktop \ + json-glib \ + systemd \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gettext gsettings upstream-version-is-even features_check + +REQUIRED_DISTRO_FEATURES = "polkit systemd pam gobject-introspection-data" + +SRC_URI[archive.sha256sum] = "c6e1624af6090bc4e1a191fe2268abfa7a8de07831ca7a57f217e679bf7b9a54" +SRC_URI += "file://0001-Patch-locking-logout-so-it-does-not-disable-shutting.patch" + +PACKAGECONFIG ??= "" + +PACKAGECONFIG[docbook] = "-Ddocbook=true, -Ddocbook=false" +PACKAGECONFIG[man] = "-Dman=true, -Dman=false,xmlto-native libxslt-native" + +FILES:${PN} += " \ + ${datadir}/xdg-desktop-portal \ + ${datadir}/xsessions \ + ${datadir}/wayland-sessions \ + ${systemd_user_unitdir} \ +" diff --git a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon/0001-disable-power-tests-and-sharing.patch b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon/0001-disable-power-tests-and-sharing.patch deleted file mode 100644 index 41df55a..0000000 --- a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon/0001-disable-power-tests-and-sharing.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff --git a/plugins/meson.build b/plugins/meson.build -index c8c10db..30c38ab 100644 ---- a/plugins/meson.build -+++ b/plugins/meson.build -@@ -20,6 +20,8 @@ all_plugins = [ - - disabled_plugins = [] - -+disabled_plugins += ['sharing'] -+ - if not enable_smartcard - disabled_plugins += ['smartcard'] - endif -@@ -33,7 +35,7 @@ if not enable_wacom - endif - - if not enable_cups -- disabled_plugins += ['cups'] -+ disabled_plugins += ['print-notifications'] - endif - - if not enable_rfkill -diff --git a/plugins/power/meson.build b/plugins/power/meson.build -index 69e619f..cd1c88b 100644 ---- a/plugins/power/meson.build -+++ b/plugins/power/meson.build -@@ -102,49 +102,4 @@ if host_is_linux - ) - endif - --output = 'gsdpowerconstants.py' -- --gsdpowerconstants_py = custom_target( -- output, -- input: 'gsd-power-constants.h', -- output: output, -- build_by_default: true, -- command: [join_paths(meson.current_source_dir(), 'gsd-power-constants-update.pl'), '@INPUT@', '@OUTPUT@'] --) -- --output = 'gsdpowerenums.py' -- --gsdpowerenums_py = custom_target( -- output, -- output: output, -- capture: true, -- build_by_default: true, -- command: [gsd_power_enums_update] --) -- --test_py = find_program('test.py') -- --envs = environment() --#envs.prepend('G_DEBUG', 'fatal-warnings') --envs.set('BUILDDIR', meson.current_build_dir()) --envs.set('TOP_BUILDDIR', meson.build_root()) --envs.set('LD_PRELOAD', 'libumockdev-preload.so.0') --envs.set('NO_AT_BRIDGE', '1') --envs.set('HAVE_SYSFS_BACKLIGHT', host_is_linux ? '1' : '0') -- --if get_option('b_sanitize').split(',').contains('address') -- # libasan needs to be loaded first; so we need to explicitly preload it -- envs.set('POWER_LD_PRELOAD', 'libasan.so.5') --endif -- --foreach i : [ 1, 2, 3, 4, 5, 6, 7, 8 ] -- test( -- 'test-power @0@/8'.format(i), -- test_py, -- args: [ 'PowerPluginTest@0@'.format(i) ], -- env: envs, -- # The first set of tests takes very long because of SCREENSAVER_TIMEOUT_BLANK -- timeout: i == 1 ? 180 : 120 -- ) --endforeach - diff --git a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_46.0.bb similarity index 80% rename from meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb rename to meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_46.0.bb index 3909cf7..4abd2e7 100644 --- a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb +++ b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_46.0.bb @@ -26,11 +26,10 @@ DEPENDS = " \ REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data" GIR_MESON_OPTION = "" -SRC_URI[archive.sha256sum] = "bb4dc46950e2a90f38f23225848856d2a7b1b718c89d0285ce197b7016bb1dc8" - +SRC_URI[archive.sha256sum] = "0b9a0f64fa18a8e7e09b4c95a3f754fa033c2cdbd2dc35701f0618572c1cb3d7" PACKAGECONFIG ??= " \ - nm \ + cups nm \ alsa gudev \ smartcard \ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \ @@ -42,11 +41,12 @@ PACKAGECONFIG[nm] = "-Dnetwork_manager=true,-Dnetwork_manager=false,networkmanag PACKAGECONFIG[smartcard] = "-Dsmartcard=true,-Dsmartcard=false,nss" PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland" -EXTRA_OEMESON += "\ - -Dwwan=false \ -" +def gnome_verdir(v): + return oe.utils.trim_version(v, 1) + +PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src" FILES:${PN} += " \ ${systemd_user_unitdir} \ - /usr/lib/gnome-settings-daemon-45/libgsd.so \ + ${libdir}/gnome-settings-daemon-${@gnome_verdir("${PV}")}/libgsd.so \ " diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_46.0.bb similarity index 89% rename from meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb rename to meta-gnome/recipes-gnome/gnome-shell/gnome-shell_46.0.bb index e1ee677..a826b0c 100644 --- a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb +++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_46.0.bb @@ -6,10 +6,10 @@ REQUIRED_DISTRO_FEATURES = "x11 systemd pam" GIR_MESON_OPTION = "" GTKIC_VERSION = "4" -SRCREV = "4474416d653af44a9ba9724583ddff091a92a948" +SRCREV = "fdacdf5cc80a94e04549d864f2d4dbac5f15f4bc" EXTERNAL_TREE_VAR="CITADEL_GNOME_SHELL_PATH" -GIT_URI = "gitsm://github.com/brl/gnome-shell.git;branch=citadel-45.0;protocol=https" +GIT_URI = "gitsm://github.com/brl/gnome-shell.git;branch=citadel-46.0;protocol=https" GNOMEBASEBUILDCLASS = "meson" @@ -28,11 +28,12 @@ DEPENDS = " \ startup-notification \ ibus \ gsettings-desktop-schemas \ + pipewire \ " inherit gnomebase gsettings gettext gobject-introspection gtk-icon-cache features_check external-tree -RDEPENDS:${PN} = "gsettings-desktop-schemas librsvg-gtk tecla" +RDEPENDS:${PN} = "gsettings-desktop-schemas librsvg-gtk tecla libjxl pipewire" FILES:${PN} += "\ ${datadir}/dbus-1 \ diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_42.0.bb b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_46.0.bb similarity index 74% rename from meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_42.0.bb rename to meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_46.0.bb index 219a069..ce3bb0f 100644 --- a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_42.0.bb +++ b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_46.0.bb @@ -6,7 +6,10 @@ DEPENDS = " \ gnome-common-native \ libxml2-native \ glib-2.0-native \ - gtkmm3 \ + glibmm-2.68 \ + gtkmm4 \ + gtk4 \ + libadwaita \ libgtop \ librsvg \ polkit \ @@ -17,12 +20,13 @@ GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gsettings gnome-help itstool gtk-icon-cache features_check gettext -REQUIRED_DISTRO_FEATURES = "x11 polkit" +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +REQUIRED_DISTRO_FEATURES = "polkit" def gnome_verdir(v): return oe.utils.trim_version(v, 1) -SRC_URI[archive.sha256sum] = "13239d22032201a22bd29833c575b684816700d2de168a1530223577c5c075dc" +SRC_URI[archive.sha256sum] = "5376248158c686c308255472e8c2a9e4c17255642c149fc7198c6d034e547599" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd" diff --git a/meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_45.0.bb b/meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_46.0.bb similarity index 85% rename from meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_45.0.bb rename to meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_46.0.bb index a46f479..c634c7a 100644 --- a/meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_45.0.bb +++ b/meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_46.0.bb @@ -13,4 +13,4 @@ GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gsettings gobject-introspection gettext -SRC_URI[archive.sha256sum] = "365c8d04daf79b38c8b3dc9626349a024f9e4befdd31fede74b42f7a9fbe0ae2" +SRC_URI[archive.sha256sum] = "493a46a1161b6388d57aa72f632a79ce96c42d5ffbd1d0b00f496ec5876f8575" diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.54.0.bb similarity index 79% rename from meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb rename to meta-gnome/recipes-gnome/gvfs/gvfs_1.54.0.bb index e8d9f16..af67370 100644 --- a/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb +++ b/meta-gnome/recipes-gnome/gvfs/gvfs_1.54.0.bb @@ -5,22 +5,27 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e" GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gsettings bash-completion gettext upstream-version-is-even features_check useradd -DEPENDS += "libsecret glib-2.0 glib-2.0-native libgudev shadow-native \ - gsettings-desktop-schemas dbus" +DEPENDS += "\ + dbus \ + glib-2.0 \ + glib-2.0-native \ + gsettings-desktop-schemas \ + libgudev \ + libsecret \ + libxml2 \ + shadow-native \ +" RDEPENDS:${PN} += "gsettings-desktop-schemas" SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive" -SRC_URI[archive.sha256sum] = "03d72b8c15ef438110f0cf457b5655266c8b515d0412b30f4d55cfa0da06ac5e" +SRC_URI[archive.sha256sum] = "f53d81df86c2e86cdd25182c2d8a669a22371e83623ded1b9d5416dcfc6de366" ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" EXTRA_OEMESON = " \ -Dbluray=false \ - -Dgoa=false \ - -Dgoogle=false \ - -Dnfs=false \ " PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash" @@ -55,10 +60,15 @@ PACKAGECONFIG[afc] = "-Dafc=true, -Dafc=false, libimobiledevice libplist" PACKAGECONFIG[archive] = "-Darchive=true, -Darchive=false, libarchive" PACKAGECONFIG[dnssd] = "-Ddnssd=true, -Ddnssd=false, avahi" PACKAGECONFIG[gcr] = "-Dgcr=true, -Dgcr=false, gcr" -PACKAGECONFIG[http] = "-Dhttp=true, -Dhttp=false, libsoup-2.4" +PACKAGECONFIG[gcrypt] = "-Dgcrypt=true, -Dgcrypt=false, libgcrypt" +PACKAGECONFIG[goa] = "-Dgoa=true, -Dgoa=false, gnome-online-accounts" +PACKAGECONFIG[google] = "-Dgoogle=true, -Dgoogle=false, libgdata" +PACKAGECONFIG[http] = "-Dhttp=true, -Dhttp=false, libsoup-3.0" PACKAGECONFIG[libmtp] = "-Dmtp=true, -Dmtp=false, libmtp" PACKAGECONFIG[logind] = "-Dlogind=true, -Dlogind=false, systemd" PACKAGECONFIG[libgphoto2] = "-Dgphoto2=true, -Dgphoto2=false, libgphoto2" +PACKAGECONFIG[nfs] = "-Dnfs=true, -Dnfs=false,libnfs" +PACKAGECONFIG[onedrive] = "-Donedrive=true, -Donedrive=false, msgraph" PACKAGECONFIG[samba] = "-Dsmb=true, -Dsmb=false, samba" PACKAGECONFIG[systemd] = "-Dsystemduserunitdir=${systemd_user_unitdir} -Dtmpfilesdir=${libdir}/tmpfiles.d, -Dsystemduserunitdir=no -Dtmpfilesdir=no, systemd" @@ -69,13 +79,13 @@ PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse3" PACKAGECONFIG[cdda] = "-Dcdda=true, -Dcdda=false, libcdio-paranoia" USERADD_PACKAGES = "${PN}" -USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 polkitd" +USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd" do_install:append() { if ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'true', 'false', d)}; then # Fix up permissions on polkit rules.d to work with rpm4 constraints - chmod 700 ${D}/${datadir}/polkit-1/rules.d - chown polkitd:root ${D}/${datadir}/polkit-1/rules.d + chmod 700 ${D}${datadir}/polkit-1/rules.d + chown polkitd:root ${D}${datadir}/polkit-1/rules.d fi # After rebuilds (not from scracth) it can happen that the executables in diff --git a/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.4.0.bb b/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.5.0.bb similarity index 88% rename from meta-gnome/recipes-gnome/libadwaita/libadwaita_1.4.0.bb rename to meta-gnome/recipes-gnome/libadwaita/libadwaita_1.5.0.bb index d8aa2cd..6a27c1e 100644 --- a/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.4.0.bb +++ b/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.5.0.bb @@ -3,16 +3,16 @@ HOMEPAGE = "https://gitlab.gnome.org/GNOME/libadwaita" LICENSE="LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" -GNOMEBASEBUILDCLASS = "meson" DEPENDS = " \ gtk4 \ appstream \ " +GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gobject-introspection gi-docgen vala features_check -SRC_URI[archive.sha256sum] = "e51a098a54d43568218fc48fcf52e80e36f469b3ce912d8ce9c308a37e9f47c2" +SRC_URI[archive.sha256sum] = "fd92287df9bb95c963654fb6e70d3e082e2bcb37b147e0e3c905567167993783" ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-Fix-hostleak-in-link-path.patch b/meta-gnome/recipes-gnome/libgtop/libgtop/0001-Fix-hostleak-in-link-path.patch deleted file mode 100644 index 39b139b..0000000 --- a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-Fix-hostleak-in-link-path.patch +++ /dev/null @@ -1,22 +0,0 @@ -From fd7b272714b62e5193faef8be56d0722361fd282 Mon Sep 17 00:00:00 2001 -From: Bruce Leidl -Date: Sun, 1 Nov 2020 08:54:33 -0500 -Subject: [PATCH] Fix hostleak in link path - ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 472f44b..aa7c729 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -270,7 +270,7 @@ AC_ARG_ENABLE(fatal-warnings, - [Define to enable fatal warnings])) - - dnl These definitions are expanded in make. --LIBGTOP_LIBS='-L$(libdir)' -+LIBGTOP_LIBS='-L=$(libdir)' - LIBGTOP_INCS='-I$(includedir)/libgtop-2.0' - - if test x$libgtop_have_sysinfo = xyes ; then diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb b/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb deleted file mode 100644 index 5bf1e8a..0000000 --- a/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Library for accessing information about running processes" -HOMEPAGE = "https://developer.gnome.org/libgtop/stable/" -LICENSE = "GPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -DEPENDS = "libx11 glib-2.0 libxau" - -inherit gnomebase perlnative gettext pkgconfig autotools - -SRC_URI[archive.md5sum] = "c6d67325cd97b2208b41e07e6cc7b947" -SRC_URI[archive.sha256sum] = "78f3274c0c79c434c03655c1b35edf7b95ec0421430897fb1345a98a265ed2d4" -SRC_URI += " file://0001-Fix-hostleak-in-link-path.patch" - -EXTRA_OECONF = "--with-examples=no" - diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.3.bb b/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.3.bb new file mode 100644 index 0000000..5587baa --- /dev/null +++ b/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.3.bb @@ -0,0 +1,12 @@ +SUMMARY = "A library for collecting system monitoring data" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +GNOMEBASEBUILDCLASS = "autotools" +inherit gnomebase lib_package gtk-doc gobject-introspection gettext upstream-version-is-even features_check + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +SRC_URI[archive.sha256sum] = "775676df958e2ea2452f7568f28b2ea581063d312773dd5c0b7624c1b9b2da8c" + +DEPENDS = "glib-2.0 libxau" diff --git a/meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.4.2.bb similarity index 84% rename from meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb rename to meta-gnome/recipes-gnome/libgweather/libgweather4_4.4.2.bb index f2ffcfd..b318117 100644 --- a/meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb +++ b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.4.2.bb @@ -3,18 +3,19 @@ SUMMARY = "A library to access weather information from online services" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -GNOMEBASEBUILDCLASS = "meson" GNOMEBN = "libgweather" S = "${WORKDIR}/${GNOMEBN}-${PV}" +GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gsettings gobject-introspection gettext gi-docgen vala features_check REQUIRED_DISTRO_FEATURES = "opengl" SRC_URI += "file://0001-Allow-building-gir-in-cross-environments.patch" -SRC_URI[archive.sha256sum] = "af8a812da0d8976a000e1d62572c256086a817323fbf35b066dbfdd8d2ca6203" +SRC_URI[archive.sha256sum] = "a6e427b4770ada48945f3aa906af710fc833cff0d42df91f1828302740d794ec" GTKDOC_MESON_OPTION = "gtk_doc" +VALA_MESON_OPTION = "enable_vala" DEPENDS = " \ geocode-glib \ diff --git a/meta-gnome/recipes-gnome/mutter/mutter_45.0.bb b/meta-gnome/recipes-gnome/mutter/mutter_46.0.bb similarity index 93% rename from meta-gnome/recipes-gnome/mutter/mutter_45.0.bb rename to meta-gnome/recipes-gnome/mutter/mutter_46.0.bb index 34b4c54..7e39b64 100644 --- a/meta-gnome/recipes-gnome/mutter/mutter_45.0.bb +++ b/meta-gnome/recipes-gnome/mutter/mutter_46.0.bb @@ -16,7 +16,7 @@ DEPENDS = " \ mesa \ upower \ xwayland \ - gtk+3 \ + gtk4 \ gdk-pixbuf \ cairo \ pango \ @@ -32,17 +32,16 @@ DEPENDS = " \ graphene-native \ wayland-protocols \ wayland-native \ - zenity \ gobject-introspection \ gobject-introspection-native \ " RDEPENDS:${PN} += " xwayland zenity" -SRCREV = "d195a063858494cf9c222c5928b1ca1d5eec8624" +SRCREV = "ab32580b4c916914aec8429b3d4d68fef1dd583e" EXTERNAL_TREE_VAR="CITADEL_MUTTER_PATH" -GIT_URI = "git://github.com/brl/mutter.git;branch=citadel-45.0;protocol=https" +GIT_URI = "git://github.com/brl/mutter.git;branch=citadel-46.0;protocol=https" GNOMEBASEBUILDCLASS = "meson" @@ -67,7 +66,7 @@ EXTRA_OEMESON += " \ -Dgles2_libname=libGLESv2.so.2 \ " -MUTTER_API_NAME = "mutter-13" +MUTTER_API_NAME = "mutter-14" do_install:append() { # Add gir links in standard paths. That makes dependents life much easier diff --git a/meta-gnome/recipes-gnome/pipewire/pipewire-0.2_git.bb b/meta-gnome/recipes-gnome/pipewire/pipewire-0.2_git.bb new file mode 100644 index 0000000..9895e89 --- /dev/null +++ b/meta-gnome/recipes-gnome/pipewire/pipewire-0.2_git.bb @@ -0,0 +1,64 @@ +SUMMARY = "Multimedia processing server for Linux" +HOMEPAGE = "https://pipewire.org" +SECTION = "multimedia" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \ + file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ +" +DEPENDS = "alsa-lib dbus udev" +SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d" +PV = "0.2.7" + +SRC_URI = "git://github.com/PipeWire/pipewire;branch=master;protocol=https" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd manpages + +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + gstreamer \ +" + +PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" +PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native" + +PACKAGES =+ "\ + ${PN}-spa-plugins \ + ${PN}-alsa \ + ${PN}-config \ + gstreamer1.0-${PN} \ + lib${PN} \ + lib${PN}-modules \ +" + +RDEPENDS:lib${PN} += "lib${PN}-modules ${PN}-spa-plugins" + +FILES:${PN} = "\ + ${sysconfdir}/pipewire/pipewire.conf \ + ${bindir}/pipewire* \ + ${systemd_user_unitdir}/* \ +" +FILES:lib${PN} = "\ + ${libdir}/libpipewire-*.so.* \ +" +FILES:lib${PN}-modules = "\ + ${libdir}/pipewire-*/* \ +" +FILES:${PN}-spa-plugins = "\ + ${bindir}/spa-* \ + ${libdir}/spa/* \ +" +FILES:${PN}-alsa = "\ + ${libdir}/alsa-lib/* \ + ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \ +" +FILES:gstreamer1.0-${PN} = "\ + ${libdir}/gstreamer-1.0/* \ +" + +CONFFILES:${PN} = "\ + ${sysconfdir}/pipewire/pipewire.conf \ +" diff --git a/meta-gnome/recipes-gnome/pipewire/pipewire-media-session_0.4.2.bb b/meta-gnome/recipes-gnome/pipewire/pipewire-media-session_0.4.2.bb new file mode 100644 index 0000000..8ae0624 --- /dev/null +++ b/meta-gnome/recipes-gnome/pipewire/pipewire-media-session_0.4.2.bb @@ -0,0 +1,26 @@ +SUMMARY = "PipeWire Media Session is an example session manager for PipeWire" +HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/media-session" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a" + +DEPENDS = " \ + pipewire \ + alsa-lib \ + dbus \ +" + +SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master" + +S = "${WORKDIR}/git" +SRCREV = "80dae7e24bec02b2befe09a72fbac6e2b38ccb5c" + +inherit meson pkgconfig +# https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2952 +CFLAGS += "-DPW_ENABLE_DEPRECATED" +FILES:${PN} += " \ + ${systemd_user_unitdir}/pipewire-media-session.service \ + ${datadir}/pipewire/media-session.d/* \ +" + +RRECOMMENDS:${PN} += "pipewire" diff --git a/meta-gnome/recipes-gnome/pipewire/pipewire_1.0.4.bb b/meta-gnome/recipes-gnome/pipewire/pipewire_1.0.4.bb new file mode 100644 index 0000000..e9c83dd --- /dev/null +++ b/meta-gnome/recipes-gnome/pipewire/pipewire_1.0.4.bb @@ -0,0 +1,388 @@ +SUMMARY = "Multimedia processing server for Linux" +DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices" +HOMEPAGE = "https://pipewire.org/" +BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues" +SECTION = "multimedia" + +LICENSE = "MIT & LGPL-2.1-or-later & GPL-2.0-only" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \ + file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \ +" + +DEPENDS = "dbus ncurses" + +SRCREV = "f2874ad1c2f7f0b9a1da05cc4f402b3ea3761ee6" +SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=1.0;protocol=https" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd gettext useradd + +USERADD_PACKAGES = "${PN}" + +GROUPADD_PARAM:${PN} = "--system pipewire" + +USERADD_PARAM:${PN} = "--system --home / --no-create-home \ + --comment 'PipeWire multimedia daemon' \ + --gid pipewire --groups audio,video \ + pipewire" + +SYSTEMD_PACKAGES = "${PN}" + +# For "EVL", look up https://evlproject.org/ . It involves +# a specially prepared kernel, and is currently unavailable +# in Yocto. +# +# +# manpage generation requires xmltoman, which is not available. +# +# The session-managers list specifies which session managers Meson +# shall download (via git clone) and build as subprojects. In OE, +# this is not how a session manager should be built. Instead, they +# should be integrated as separate OE recipes. To prevent PipeWire +# from using this Meson feature, set an empty list. +# This does not disable support or the need for session managers, +# it just prevents this subproject feature. +# +# AptX and LDAC are not available in OE. Currently, neither +# are lv2, ROC, and libmysofa. +# +# The RTKit module is deprecated in favor of the newer RT module. +# It still exists for legacy setups that still include it in +# their PipeWire configuration files. +EXTRA_OEMESON += " \ + -Devl=disabled \ + -Dtests=disabled \ + -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ + -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ + -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ + -Dman=disabled \ + -Dsession-managers='[]' \ + -Dlv2=disabled \ + -Droc=disabled \ + -Dbluez5-codec-aptx=disabled \ + -Dbluez5-codec-ldac=disabled \ + -Dlegacy-rtkit=false \ + -Dlibmysofa=disabled \ +" + +# spa alsa plugin code uses typedef redefinition, which is officially a C11 feature. +# Pipewire builds with 'c_std=gnu99' by default. Recent versions of gcc don't issue this warning in gnu99 +# mode but it looks like clang still does +CFLAGS:append = " -Wno-typedef-redefinition" + +# According to wireplumber documentation only one session manager should be installed at a time +# Possible options are media-session, which has fewer dependencies but is very simple, +# or wireplumber, which is more powerful. +PIPEWIRE_SESSION_MANAGER ??= "wireplumber" + +FFMPEG_AVAILABLE = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'ffmpeg', '', d)}" +BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}" + +PACKAGECONFIG:class-target ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez bluez-opus ${BLUETOOTH_AAC}', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \ + ${PIPEWIRE_SESSION_MANAGER} \ + ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera readline \ +" + +# "jack" and "pipewire-jack" packageconfigs cannot be both enabled, +# since "jack" imports libjack, and "pipewire-jack" generates +# libjack.so* files, thus colliding with the libpack package. This +# is why these two are marked in their respective packageconfigs +# as being in conflict. +PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev,,pipewire-alsa pipewire-alsa-card-profile" +PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi" +PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" +PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac" +PACKAGECONFIG[bluez-opus] = "-Dbluez5-codec-opus=enabled,-Dbluez5-codec-opus=disabled,libopus" +PACKAGECONFIG[bluez-lc3] = "-Dbluez5-codec-lc3=enabled,-Dbluez5-codec-lc3=disabled,liblc3" +# From the pipewire git log: +# "Some Linux phones doesn't use oFono but ModemManager to control the modem." +# This packageconfig enables modemmanager specific code in the BlueZ backend. +PACKAGECONFIG[bluez-backend-native-mm] = "-Dbluez5-backend-native-mm=enabled,-Dbluez5-backend-native-mm=disabled,modemmanager" +PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native" +PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg" +PACKAGECONFIG[flatpak] = "-Dflatpak=enabled,-Dflatpak=disabled,glib-2.0" +PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0" +PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base,,gstreamer1.0-pipewire" +PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" +PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera libdrm" +PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra" +PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb" +PACKAGECONFIG[media-session] = ",,,pipewire-media-session,,wireplumber" +PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio,,pipewire-pulse" +PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" +PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,pipewire-jack,jack" +PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" +PACKAGECONFIG[raop] = "-Draop=enabled,-Draop=disabled,openssl" +# Starting with version 0.3.60, readline usage can be turned off in pw-cli. +# If it is disabled, getline() is used as a fallback. +PACKAGECONFIG[readline] = "-Dreadline=enabled,-Dreadline=disabled,readline" +PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,libsdl2" +PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" +PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsystemd-system-service=disabled,systemd" +# "systemd-user-service" packageconfig will only install service +# files to rootfs but not enable them as systemd.bbclass +# currently lacks the feature of enabling user services. +PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd" +# pw-cat needs sndfile packageconfig to be enabled +PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev" +PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" +PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader" +PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing-1" +PACKAGECONFIG[wireplumber] = ",,,wireplumber,,media-session" + +PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " +PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " + +SPA_SUBDIR = "spa-0.2" +PW_MODULE_SUBDIR = "pipewire-0.3" + +remove_unused_installed_files() { + # jack.conf is used by pipewire-jack (not the JACK SPA plugin). + # Remove it if pipewire-jack is not built to avoid creating the + # pipewire-jack package. + if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then + rm -f "${D}${datadir}/pipewire/jack.conf" + fi + + # minimal.conf is an example of how to minimally configure the + # daemon and is not meant to be used for production. + rm -f "${D}${datadir}/pipewire/minimal.conf" +} + +do_install[postfuncs] += "remove_unused_installed_files" + +python split_dynamic_packages () { + # Create packages for each SPA plugin. These plugins are located + # in individual subdirectories, so a recursive search is needed. + spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}') + do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True) + + # Create packages for each PipeWire module. + pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}') + do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False) +} + +python set_dynamic_metapkg_rdepends () { + import os + import oe.utils + + if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('native', d): + return + + # Go through all generated SPA plugin and PipeWire module packages + # (excluding the main package and the -meta package itself) and + # add them to the -meta package as RDEPENDS. + + base_pn = d.getVar('PN') + + spa_pn = base_pn + '-spa-plugins' + spa_metapkg = spa_pn + '-meta' + + pw_module_pn = base_pn + '-modules' + pw_module_metapkg = pw_module_pn + '-meta' + + d.setVar('ALLOW_EMPTY:' + spa_metapkg, "1") + d.setVar('FILES:' + spa_metapkg, "") + + d.setVar('ALLOW_EMPTY:' + pw_module_metapkg, "1") + d.setVar('FILES:' + pw_module_metapkg, "") + + blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ] + spa_metapkg_rdepends = [] + pw_module_metapkg_rdepends = [] + pkgdest = d.getVar('PKGDEST') + + for pkg in oe.utils.packages_filter_out_system(d): + if pkg in blacklist: + continue + + is_spa_pkg = pkg.startswith(spa_pn) + is_pw_module_pkg = pkg.startswith(pw_module_pn) + if not is_spa_pkg and not is_pw_module_pkg: + continue + + if pkg in spa_metapkg_rdepends or pkg in pw_module_metapkg_rdepends: + continue + + # See if the package is empty by looking at the contents of its + # PKGDEST subdirectory. If this subdirectory is empty, then then + # package is empty as well. Empty packages do not get added to + # the meta package's RDEPENDS. + pkgdir = os.path.join(pkgdest, pkg) + if os.path.exists(pkgdir): + dir_contents = os.listdir(pkgdir) or [] + else: + dir_contents = [] + is_empty = len(dir_contents) == 0 + if not is_empty: + if is_spa_pkg: + spa_metapkg_rdepends.append(pkg) + if is_pw_module_pkg: + pw_module_metapkg_rdepends.append(pkg) + + d.setVar('RDEPENDS:' + spa_metapkg, ' '.join(spa_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + spa_metapkg, spa_pn + ' meta package') + + d.setVar('RDEPENDS:' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + pw_module_metapkg, pw_module_pn + ' meta package') +} + +PACKAGES =+ "\ + libpipewire \ + ${PN}-tools \ + ${PN}-pulse \ + ${PN}-alsa \ + ${PN}-jack \ + ${PN}-spa-plugins \ + ${PN}-spa-plugins-meta \ + ${PN}-spa-tools \ + ${PN}-modules \ + ${PN}-modules-meta \ + ${PN}-alsa-card-profile \ + ${PN}-v4l2 \ + ${PN}-aes67 \ + gstreamer1.0-pipewire \ +" + +PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" +PACKAGES_DYNAMIC:class-native = "" + +SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}" +CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" +FILES:${PN} = " \ + ${datadir}/pipewire \ + ${systemd_system_unitdir}/pipewire* \ + ${systemd_user_unitdir} \ + ${bindir}/pipewire \ + ${bindir}/pipewire-avb \ + ${bindir}/pipewire-vulkan \ +" + +RRECOMMENDS:${PN}:class-target += " \ + pipewire-modules-meta \ + pipewire-spa-plugins-meta \ +" + +FILES:${PN}-dev += " \ + ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \ +" + +CONFFILES:libpipewire += "${datadir}/pipewire/client.conf" +FILES:libpipewire = " \ + ${datadir}/pipewire/client.conf \ + ${libdir}/libpipewire-*.so.* \ +" +# Add the bare minimum modules and plugins required to be able +# to use libpipewire. Without these, it is essentially unusable. +RDEPENDS:libpipewire += " \ + ${PN}-modules-client-node \ + ${PN}-modules-protocol-native \ + ${PN}-spa-plugins-support \ +" + +FILES:${PN}-tools = " \ + ${bindir}/pw-cat \ + ${bindir}/pw-cli \ + ${bindir}/pw-config \ + ${bindir}/pw-dot \ + ${bindir}/pw-dsdplay \ + ${bindir}/pw-dump \ + ${bindir}/pw-encplay \ + ${bindir}/pw-link \ + ${bindir}/pw-loopback \ + ${bindir}/pw-metadata \ + ${bindir}/pw-mididump \ + ${bindir}/pw-midiplay \ + ${bindir}/pw-midirecord \ + ${bindir}/pw-mon \ + ${bindir}/pw-play \ + ${bindir}/pw-profiler \ + ${bindir}/pw-record \ + ${bindir}/pw-reserve \ + ${bindir}/pw-top \ +" + +# This is a shim daemon that is intended to be used as a +# drop-in PulseAudio replacement, providing a pulseaudio-compatible +# socket that can be used by applications that use libpulse. +CONFFILES:${PN}-pulse += "${datadir}/pipewire/pipewire-pulse.conf" +FILES:${PN}-pulse = " \ + ${datadir}/pipewire/pipewire-pulse.conf \ + ${systemd_system_unitdir}/pipewire-pulse.* \ + ${systemd_user_unitdir}/pipewire-pulse.* \ + ${bindir}/pipewire-pulse \ +" +RDEPENDS:${PN}-pulse += " \ + ${PN}-modules-protocol-pulse \ +" + +# ALSA plugin to redirect audio to pipewire. +FILES:${PN}-alsa = "\ + ${libdir}/alsa-lib/* \ + ${datadir}/alsa/alsa.conf.d/* \ +" + +# JACK drop-in libraries to redirect audio to pipewire. +CONFFILES:${PN}-jack = "${datadir}/pipewire/jack.conf" +FILES:${PN}-jack = "\ + ${bindir}/pw-jack \ + ${datadir}/pipewire/jack.conf \ + ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ +" + +# Dynamic SPA plugin packages (see set_dynamic_metapkg_rdepends). +FILES:${PN}-spa-plugins = "" +RRECOMMENDS:${PN}-spa-plugins += "${PN}-spa-plugins-meta" + +FILES:${PN}-spa-plugins-bluez5 += " \ + ${datadir}/${SPA_SUBDIR}/bluez5/* \ +" + +FILES:${PN}-spa-tools = " \ + ${bindir}/spa-* \ +" + +# Dynamic PipeWire module packages (see set_dynamic_metapkg_rdepends). +FILES:${PN}-modules = "" +RRECOMMENDS:${PN}-modules += "${PN}-modules-meta" + +CONFFILES:${PN}-modules-rt = "${datadir}/pipewire/client-rt.conf" +FILES:${PN}-modules-rt += " \ + ${datadir}/pipewire/client-rt.conf \ + ${sysconfdir}/security/limits.d/* \ + " + +CONFFILES:${PN}-modules-filter-chain = "${datadir}/pipewire/filter-chain/*" +FILES:${PN}-modules-filter-chain += " \ + ${datadir}/pipewire/filter-chain/* \ +" + +FILES:${PN}-alsa-card-profile = " \ + ${datadir}/alsa-card-profile/* \ + ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \ +" + +# V4L2 interface emulator for sending/receiving data between PipeWire and V4L2 applications. +FILES:${PN}-v4l2 += " \ + ${bindir}/pw-v4l2 \ + ${libdir}/${PW_MODULE_SUBDIR}/v4l2/libpw-v4l2.so \ +" + +# AES67 is a standard for audio over IP, from the Audio Engineering Society (AES). +FILES:${PN}-aes67 += " \ + ${bindir}/pipewire-aes67 \ +" + +FILES:gstreamer1.0-pipewire = " \ + ${libdir}/gstreamer-1.0/* \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-gnome/recipes-gnome/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua b/meta-gnome/recipes-gnome/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua new file mode 100644 index 0000000..353a49c --- /dev/null +++ b/meta-gnome/recipes-gnome/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua @@ -0,0 +1,5 @@ +-- These features require a session DBus instance, which is not available +-- by default in OE generated images. The absence of such a DBus instance +-- causes WirePlumber to fail to start. Turn these off to prevent that. +alsa_monitor.properties["alsa.reserve"] = false +default_access.properties["enable-flatpak-portal"] = false diff --git a/meta-gnome/recipes-gnome/wireplumber/wireplumber_0.5.0.bb b/meta-gnome/recipes-gnome/wireplumber/wireplumber_0.5.0.bb new file mode 100644 index 0000000..8aa95a3 --- /dev/null +++ b/meta-gnome/recipes-gnome/wireplumber/wireplumber_0.5.0.bb @@ -0,0 +1,145 @@ +SUMMARY = "Session / policy manager implementation for PipeWire" +HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/wireplumber" +BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/wireplumber/issues" +SECTION = "multimedia" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=17d1fe479cdec331eecbc65d26bc7e77" + +DEPENDS = "glib-2.0 glib-2.0-native lua pipewire \ + ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "python3-native python3-lxml-native doxygen-native", "", d)} \ +" + +SRCREV = "59d190a2bd400f3b093f99b16fc0fb06f6cb2cfe" +SRC_URI = " \ + git://gitlab.freedesktop.org/pipewire/wireplumber.git;branch=master;protocol=https \ + file://90-OE-disable-session-dbus-dependent-features.lua \ +" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig gobject-introspection systemd + +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' + +# Enable system-lua to let wireplumber use OE's lua. +# Documentation needs python-sphinx, which is not in oe-core or meta-python2 for now. +# elogind is not (yet) available in OE, so disable support. +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Dsystem-lua=true \ + -Delogind=disabled \ + -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ + -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ + -Dtests=false \ +" + +PACKAGECONFIG ??= " dbus \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \ +" + +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" +PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=true,-Dsystemd-system-service=false,systemd" +# "systemd-user-service" packageconfig will only install service +# files to rootfs but not enable them as systemd.bbclass +# currently lacks the feature of enabling user services. +PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=true,-Dsystemd-user-service=false,systemd" +PACKAGECONFIG[dbus] = "" + +PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " +PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " + +WP_MODULE_SUBDIR = "wireplumber-0.5" + +do_install:append() { + if ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'false', 'true', d)}; then + install -m 0644 ${WORKDIR}/90-OE-disable-session-dbus-dependent-features.lua ${D}${datadir}/wireplumber/main.lua.d + fi +} + +python split_dynamic_packages () { + # Create packages for each WirePlumber module. + wp_module_libdir = d.expand('${libdir}/${WP_MODULE_SUBDIR}') + do_split_packages(d, wp_module_libdir, r'^libwireplumber-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'WirePlumber %s module', extra_depends='', recursive=False) +} + +python set_dynamic_metapkg_rdepends () { + import os + import oe.utils + + # Go through all generated WirePlumber module packages + # (excluding the main package and the -meta package itself) + # and add them to the -meta package as RDEPENDS. + + base_pn = d.getVar('PN') + + wp_module_pn = base_pn + '-modules' + wp_module_metapkg = wp_module_pn + '-meta' + + d.setVar('ALLOW_EMPTY:' + wp_module_metapkg, "1") + d.setVar('FILES:' + wp_module_metapkg, "") + + blacklist = [ wp_module_pn, wp_module_metapkg ] + wp_module_metapkg_rdepends = [] + pkgdest = d.getVar('PKGDEST') + + for pkg in oe.utils.packages_filter_out_system(d): + if pkg in blacklist: + continue + + is_wp_module_pkg = pkg.startswith(wp_module_pn) + if not is_wp_module_pkg: + continue + + if pkg in wp_module_metapkg_rdepends: + continue + + # See if the package is empty by looking at the contents of its + # PKGDEST subdirectory. If this subdirectory is empty, then then + # package is empty as well. Empty packages do not get added to + # the meta package's RDEPENDS. + pkgdir = os.path.join(pkgdest, pkg) + if os.path.exists(pkgdir): + dir_contents = os.listdir(pkgdir) or [] + else: + dir_contents = [] + is_empty = len(dir_contents) == 0 + if not is_empty: + if is_wp_module_pkg: + wp_module_metapkg_rdepends.append(pkg) + + d.setVar('RDEPENDS:' + wp_module_metapkg, ' '.join(wp_module_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + wp_module_metapkg, wp_module_pn + ' meta package') +} + +PACKAGES =+ "\ + libwireplumber \ + ${PN}-default-config \ + ${PN}-scripts \ + ${PN}-modules \ + ${PN}-modules-meta \ +" + +PACKAGES_DYNAMIC = "^${PN}-modules.*" + +CONFFILES:${PN} += " \ + ${datadir}/wireplumber/wireplumber.conf \ + ${datadir}/wireplumber/*.lua.d/* \ +" +# Add pipewire to RRECOMMENDS, since WirePlumber expects a PipeWire daemon to +# be present. While in theory any application that uses libpipewire can configure +# itself to become a daemon, in practice, the PipeWire daemon is used. +RRECOMMENDS:${PN} += "pipewire ${PN}-scripts ${PN}-modules-meta" + +FILES:${PN} += "${systemd_user_unitdir} ${systemd_system_unitdir} ${datadir}/zsh" + +FILES:libwireplumber = " \ + ${libdir}/libwireplumber-*.so.* \ +" + +FILES:${PN}-scripts += "${datadir}/wireplumber/scripts/*" + +# Dynamic packages (see set_dynamic_metapkg_rdepends). +FILES:${PN}-modules = "" +RRECOMMENDS:${PN}-modules += "${PN}-modules-meta" diff --git a/meta-gnome/recipes-support/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch b/meta-gnome/recipes-support/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch new file mode 100644 index 0000000..47c8edb --- /dev/null +++ b/meta-gnome/recipes-support/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch @@ -0,0 +1,37 @@ +From 24650b0c7db6b213a2eaa5061b75b9f1b43f1ce9 Mon Sep 17 00:00:00 2001 +From: Bartosz Golaszewski +Date: Fri, 23 Nov 2018 11:44:56 +0100 +Subject: [PATCH] build: don't look for Iconv + +Drop the find_package() for Iconv. CMake is unable to find iconv.h in +native build but all modern systems supply it as part of the standard +C library. We don't need this check in meta-openembedded. + +Signed-off-by: Bartosz Golaszewski +Signed-off-by: Randy MacLeod + +Upstream-Status: Inappropriate +- upstream doxygen must build on many architectures, this change is + too intrusive for upstream +--- + CMakeLists.txt | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 06b9696f..f30b46b8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -117,10 +117,6 @@ if (sqlite3) + endif() + endif() + +-find_package(Iconv REQUIRED) +-include_directories(${ICONV_INCLUDE_DIR}) +- +- + #set(DOXYDOCS ${PROJECT_SOURCE_DIR}/doc CACHE INTERNAL "Path to doxygen docs") + set(DOXYDOCS ${PROJECT_BINARY_DIR}/doc) + set(ENV{DOXYGEN_DOCDIR} ${DOXYDOCS}) +-- +2.27.0 + diff --git a/meta-gnome/recipes-support/doxygen/doxygen/doxygen-native-only-check-python3.patch b/meta-gnome/recipes-support/doxygen/doxygen/doxygen-native-only-check-python3.patch new file mode 100644 index 0000000..796bc61 --- /dev/null +++ b/meta-gnome/recipes-support/doxygen/doxygen/doxygen-native-only-check-python3.patch @@ -0,0 +1,232 @@ +From daf686508f2ee4711d93e96e5b100e50bf161656 Mon Sep 17 00:00:00 2001 +From: Leon Anavi +Date: Wed, 26 Aug 2020 10:52:10 +0300 +Subject: [PATCH] doxygen: Fix Python issues for doxygen-native + +It fails to compile doxygen-native when /usr/bin/python is a link +to python3 on build host: + +| Failed to import the site module +| Traceback (most recent call last): +| File "/usr/lib64/python3.6/site.py", line 564, in +| main() +| File "/usr/lib64/python3.6/site.py", line 550, in main +| known_paths = addusersitepackages(known_paths) +| File "/usr/lib64/python3.6/site.py", line 282, in addusersitepackages +| user_site = getusersitepackages() +| File "/usr/lib64/python3.6/site.py", line 258, in getusersitepackages +| user_base = getuserbase() # this will also set USER_BASE +| File "/usr/lib64/python3.6/site.py", line 248, in getuserbase +| USER_BASE = get_config_var('userbase') +| File "/usr/lib64/python3.6/sysconfig.py", line 604, in get_config_var +| return get_config_vars().get(name) +| File "/usr/lib64/python3.6/sysconfig.py", line 553, in get_config_vars +| _init_posix(_CONFIG_VARS) +| File "/usr/lib64/python3.6/sysconfig.py", line 424, in _init_posix +| _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) +| ModuleNotFoundError: No module named '_sysconfigdata' + +Replace find_package PythonInterp with Python3 to fix this issue +that it uses python3 from python3-native. And it also replaces the +result variable PYTHON_EXECUTABLE with Python3_EXECUTABLE. + +This patch is only needded by doxygen-native. + +Updated to apply to release 1.9.1. + +Upstream-Status: Inappropriate [oe specific] + +Co-Authored-By: Kai Kang +Signed-off-by: Leon Anavi +Signed-off-by: Randy MacLeod + +--- + CMakeLists.txt | 2 +- + addon/doxywizard/CMakeLists.txt | 6 +++--- + doc/CMakeLists.txt | 6 +++--- + examples/CMakeLists.txt | 4 ++-- + libmscgen/CMakeLists.txt | 2 +- + src/CMakeLists.txt | 10 +++++----- + testing/CMakeLists.txt | 4 ++-- + 7 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2455793..28f0d83 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -105,7 +105,7 @@ else () + endif () + + find_program(DOT NAMES dot) +-find_package(PythonInterp REQUIRED) ++find_package(Python3 REQUIRED) + find_package(FLEX REQUIRED) + find_package(BISON REQUIRED) + if (BISON_VERSION VERSION_LESS 2.7) +diff --git a/addon/doxywizard/CMakeLists.txt b/addon/doxywizard/CMakeLists.txt +index 63ac8e3..d37d1d0 100644 +--- a/addon/doxywizard/CMakeLists.txt ++++ b/addon/doxywizard/CMakeLists.txt +@@ -57,7 +57,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERA + + # generate version.cpp + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/version.py ${VERSION} > ${GENERATED_SRC_WIZARD}/version.cpp ++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/version.py ${VERSION} > ${GENERATED_SRC_WIZARD}/version.cpp + DEPENDS ${PROJECT_SOURCE_DIR}/VERSION ${PROJECT_SOURCE_DIR}/src/version.py + OUTPUT ${GENERATED_SRC_WIZARD}/version.cpp + ) +@@ -65,7 +65,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/version.cpp PROPERTIES GENER + + # generate configdoc.cpp + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/configgen.py -wiz ${PROJECT_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp ++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/configgen.py -wiz ${PROJECT_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp + DEPENDS ${PROJECT_SOURCE_DIR}/src/configgen.py ${PROJECT_SOURCE_DIR}/src/config.xml + OUTPUT ${GENERATED_SRC_WIZARD}/configdoc.cpp + ) +@@ -74,7 +74,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GEN + set(LEX_FILES config_doxyw) + foreach(lex_file ${LEX_FILES}) + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l > ${GENERATED_SRC_WIZARD}/${lex_file}.l.h ++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l > ${GENERATED_SRC_WIZARD}/${lex_file}.l.h + DEPENDS ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l + OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.l.h + ) +diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt +index ec63ceb..49a2bda 100644 +--- a/doc/CMakeLists.txt ++++ b/doc/CMakeLists.txt +@@ -168,7 +168,7 @@ configure_file(${PROJECT_SOURCE_DIR}/doc/doxyindexer.1 ${PROJECT_BINARY_DIR + + # doc/language.doc (see tag Doxyfile:INPUT) + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} translator.py ${PROJECT_SOURCE_DIR} ++ COMMAND ${Python3_EXECUTABLE} translator.py ${PROJECT_SOURCE_DIR} + DEPENDS ${PROJECT_SOURCE_DIR}/doc/maintainers.txt ${PROJECT_SOURCE_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py ${LANG_FILES} + OUTPUT language.doc + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc +@@ -177,7 +177,7 @@ set_source_files_properties(language.doc PROPERTIES GENERATED 1) + + # doc/config.doc (see tag Doxyfile:INPUT) + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc ++ COMMAND ${Python3_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc + DEPENDS ${TOP}/src/config.xml ${TOP}/src/configgen.py + OUTPUT config.doc + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/ +@@ -228,7 +228,7 @@ add_custom_target(docs_chm + COMMAND ${CMAKE_COMMAND} -E echo " for file in files:" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py + COMMAND ${CMAKE_COMMAND} -E echo " if file.endswith('.html') or file.endswith('.png') or file.endswith('.css') or file.endswith('.gif'):" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py + COMMAND ${CMAKE_COMMAND} -E echo " print(os.path.join(root, file))" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py +- COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp ++ COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${Python3_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp + COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm "${HTML_HELP_COMPILER}" doxygen_manual.hhp || echo > nul + COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm + DEPENDS ${PROJECT_BINARY_DIR}/doc/language.doc ${PROJECT_BINARY_DIR}/doc/config.doc +diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt +index 194b427..248b807 100644 +--- a/examples/CMakeLists.txt ++++ b/examples/CMakeLists.txt +@@ -54,7 +54,7 @@ foreach (f_inp ${BASIC_EXAMPLES}) + COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/${f} + COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/${f} + COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg +- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex ++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex + DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py + OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex + ) +@@ -73,7 +73,7 @@ if (DOT) + COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/diagrams + COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/diagrams + COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg +- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex ++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman_doc.tex + DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg ${TOP}/examples/strip_example.py + OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex + ) +diff --git a/libmscgen/CMakeLists.txt b/libmscgen/CMakeLists.txt +index 34cf4d8..f015afc 100644 +--- a/libmscgen/CMakeLists.txt ++++ b/libmscgen/CMakeLists.txt +@@ -7,7 +7,7 @@ include_directories( + set(LEX_FILES mscgen_lexer) + foreach(lex_file ${LEX_FILES}) + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h ++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h + DEPENDS ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l + OUTPUT ${GENERATED_SRC}/${lex_file}.l.h + ) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 0e0c5f7..c1d3ca5 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -40,7 +40,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1) + + # configvalues.h + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h ++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py + OUTPUT ${GENERATED_SRC}/configvalues.h + ) +@@ -52,7 +52,7 @@ add_custom_target( + + # configvalues.cpp + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp ++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py + OUTPUT ${GENERATED_SRC}/configvalues.cpp + ) +@@ -60,7 +60,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT + + # configoptions.cpp + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp ++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py + OUTPUT ${GENERATED_SRC}/configoptions.cpp + ) +@@ -95,7 +95,7 @@ endif() + # resources.cpp + add_custom_command( + COMMENT "Generating ${GENERATED_SRC}/resources.cpp" +- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${PROJECT_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp ++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${PROJECT_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp + DEPENDS ${RESOURCES} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py + OUTPUT ${GENERATED_SRC}/resources.cpp + ) +@@ -126,7 +126,7 @@ foreach(lex_file ${LEX_FILES}) + set(LEX_FILES_H ${LEX_FILES_H} " " ${GENERATED_SRC}/${lex_file}.l.h CACHE INTERNAL "Stores generated files") + set(LEX_FILES_CPP ${LEX_FILES_CPP} " " ${GENERATED_SRC}/${lex_file}.cpp CACHE INTERNAL "Stores generated files") + add_custom_command( +- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h ++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l + OUTPUT ${GENERATED_SRC}/${lex_file}.l.h + ) +diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt +index fd6912e..0af1865 100644 +--- a/testing/CMakeLists.txt ++++ b/testing/CMakeLists.txt +@@ -1,7 +1,7 @@ + # run all tests sequentially (keep for backward compatibility) + add_custom_target(tests + COMMENT "Running doxygen tests..." +- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing ++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing + DEPENDS doxygen + ) + +@@ -19,6 +19,6 @@ foreach(TEST_FILE ${TEST_FILES}) + string(REGEX REPLACE "^.*/([0-9][0-9][0-9]*).*$" "\\1" TEST_ID "${TEST_FILE}") + # add a test target for each test + add_test(NAME ${TEST_NAME} +- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $ --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing ++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $ --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing + ) + endforeach() diff --git a/meta-gnome/recipes-support/doxygen/doxygen_1.9.3.bb b/meta-gnome/recipes-support/doxygen/doxygen_1.9.3.bb new file mode 100644 index 0000000..8bd0992 --- /dev/null +++ b/meta-gnome/recipes-support/doxygen/doxygen_1.9.3.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Doxygen is the de facto standard tool for generating documentation from annotated C++ sources." +HOMEPAGE = "http://www.doxygen.org/" + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "flex-native bison-native" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \ + file://0001-build-don-t-look-for-Iconv.patch \ +" +SRC_URI:append:class-native = " file://doxygen-native-only-check-python3.patch" +SRC_URI[sha256sum] = "f352dbc3221af7012b7b00935f2dfdc9fb67a97d43287d2f6c81c50449d254e0" + +inherit cmake python3native + +EXTRA_OECMAKE += "\ + -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \ + -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \ +" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-gnome/recipes-support/gcr/gcr_4.2.0.bb b/meta-gnome/recipes-support/gcr/gcr_4.2.0.bb new file mode 100644 index 0000000..484f696 --- /dev/null +++ b/meta-gnome/recipes-support/gcr/gcr_4.2.0.bb @@ -0,0 +1,59 @@ +SUMMARY = "A library for bits of crypto UI and parsing etc" +DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \ +accessing key stores. It also provides the viewer for crypto files on the \ +GNOME desktop." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues" + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +DEPENDS = "p11-kit glib-2.0 libgcrypt gnupg-native \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}" + +CACHED_CONFIGUREVARS += "ac_cv_path_GPG='gpg2'" + +CFLAGS += "-D_GNU_SOURCE" + +GNOMEBASEBUILDCLASS = "meson" +GTKDOC_MESON_OPTION = "gtk_doc" +inherit gnomebase gtk-icon-cache gi-docgen features_check vala gobject-introspection gettext mime mime-xdg + +REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', '', d)}" + +SRC_URI[archive.sha256sum] = "e15e31329e0171229d552d25563f176c5b6179795bf91fae2b141f69a9b7c480" + +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)} \ +" +PACKAGECONFIG[gtk] = "-Dgtk4=true,-Dgtk4=false,gtk4" +PACKAGECONFIG[ssh_agent] = "-Dssh_agent=true,-Dssh_agent=false,libsecret,openssh" +#'Use systemd socket activation for server programs' +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" +PACKAGECONFIG[vapi] = "-Dvapi=true,-Dvapi=false," + +FILES:${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/gcr-4 \ + ${systemd_user_unitdir}/gcr-ssh-agent.socket \ + ${systemd_user_unitdir}/gcr-ssh-agent.service \ +" + +# http://errors.yoctoproject.org/Errors/Details/20229/ +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" + +EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross" + +do_write_config:append() { + cat >${WORKDIR}/meson-${PN}.cross < gstreamer1.0-plugins-bad PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad" PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker,tracker-miners" diff --git a/meta-gnome/recipes-support/gtk+/gtkmm4_4.14.0.bb b/meta-gnome/recipes-support/gtk+/gtkmm4_4.14.0.bb new file mode 100644 index 0000000..54ae81a --- /dev/null +++ b/meta-gnome/recipes-support/gtk+/gtkmm4_4.14.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "C++ bindings for the GTK+ toolkit V4" +HOMEPAGE = "http://www.gtkmm.org/" +SECTION = "libs" + +LICENSE = "LGPL-2.1-only & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "glib-2.0-native atkmm-2.36 pangomm-2.48 glibmm-2.68 gtk4 cairomm-1.16 gdk-pixbuf-native" + +BPN = "gtkmm" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +SRC_URI[archive.sha256sum] = "9350a0444b744ca3dc69586ebd1b6707520922b6d9f4f232103ce603a271ecda" + +EXTRA_OEMESON = "-Dbuild-demos=false" + +FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4" diff --git a/meta-gnome/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch b/meta-gnome/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch new file mode 100644 index 0000000..89f31f7 --- /dev/null +++ b/meta-gnome/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch @@ -0,0 +1,94 @@ +From 4a89ddffbb14d747adbe3365ace4db87de52ba39 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 16 Sep 2013 16:08:28 +0200 +Subject: [PATCH] build gtk- and gtk3-version for canberra_gtk_play +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- +Upstream-Status: Pending + + src/Makefile.am | 25 +++++++++++++++---------- + 1 files changed, 15 insertions(+), 10 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 56ed96d..fc72e1f 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -319,9 +319,6 @@ endif + + if HAVE_GTK_ANY + +-bin_PROGRAMS += \ +- canberra-gtk-play +- + include_HEADERS += \ + canberra-gtk.h + +@@ -329,6 +326,9 @@ endif + + if HAVE_GTK3 + ++bin_PROGRAMS += \ ++ canberra-gtk3-play ++ + lib_LTLIBRARIES += \ + libcanberra-gtk3.la + +@@ -367,6 +367,9 @@ endif + + if HAVE_GTK + ++bin_PROGRAMS += \ ++ canberra-gtk-play ++ + lib_LTLIBRARIES += \ + libcanberra-gtk.la + +@@ -399,14 +402,17 @@ endif + + if HAVE_GTK3 + +-canberra_gtk_play_LDADD = \ ++canberra_gtk3_play_LDADD = \ + $(GTK3_LIBS) \ + libcanberra.la \ + libcanberra-gtk3.la +-canberra_gtk_play_CFLAGS = \ ++canberra_gtk3_play_CFLAGS = \ + $(GTK3_CFLAGS) + +-else ++canberra_gtk3_play_SOURCES = \ ++ canberra-gtk-play.c ++ ++endif + if HAVE_GTK + + canberra_gtk_play_LDADD = \ +@@ -416,7 +422,9 @@ canberra_gtk_play_LDADD = \ + canberra_gtk_play_CFLAGS = \ + $(GTK_CFLAGS) + +-endif ++canberra_gtk_play_SOURCES = \ ++ canberra-gtk-play.c ++ + endif + + if HAVE_GTK_ANY +@@ -424,9 +432,6 @@ if HAVE_GTK_ANY + dist_gsdgtkmodules_DATA = \ + canberra-gtk-module.desktop + +-canberra_gtk_play_SOURCES = \ +- canberra-gtk-play.c +- + EXTRA_DIST += \ + libcanberra-login-sound.desktop.in \ + libcanberra-ready-sound.desktop.in \ +-- +1.7.6.5 + diff --git a/meta-gnome/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch b/meta-gnome/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch new file mode 100644 index 0000000..1e45441 --- /dev/null +++ b/meta-gnome/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch @@ -0,0 +1,65 @@ +From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001 +From: Michael Meeks +Date: Fri, 9 Nov 2012 16:16:40 +0000 +Subject: [PATCH] gtk: Don't assume all GdkDisplays are GdkX11Displays: + broadway/wayland + +--- +Upstream-Status: Pending + + src/canberra-gtk-module.c | 15 +++++++++++++++ + src/canberra-gtk.c | 5 +++++ + 2 files changed, 20 insertions(+) + +--- a/src/canberra-gtk-module.c ++++ b/src/canberra-gtk-module.c +@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDispla + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, +@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDispl + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, +@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisp + gboolean ret = FALSE; + Atom xembed; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return FALSE; ++#endif ++ + /* Gnome Panel applets are XEMBED windows. We need to make sure we + * ignore them */ + +--- a/src/canberra-gtk.c ++++ b/src/canberra-gtk.c +@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDispla + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, diff --git a/meta-gnome/recipes-support/libcanberra/files/0001-remove-dropped-templates.patch b/meta-gnome/recipes-support/libcanberra/files/0001-remove-dropped-templates.patch new file mode 100644 index 0000000..57f5486 --- /dev/null +++ b/meta-gnome/recipes-support/libcanberra/files/0001-remove-dropped-templates.patch @@ -0,0 +1,65 @@ +From dfd3ef4caac300f517f8eeb378f0b0f9ba6a9b06 Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Tue, 15 Aug 2023 15:41:03 +0200 +Subject: [PATCH] remove dropped gtkdoc templates + +Signed-off-by: Markus Volk + +Upstream-Status: Pending +--- +--- a/gtkdoc/gtk-doc.make 2011-08-25 23:20:22.000000000 +0200 ++++ b/gtkdoc/gtk-doc.make 2023-08-15 18:08:02.430729073 +0200 +@@ -33,9 +33,9 @@ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +-DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ ++DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ +- tmpl.stamp sgml.stamp html.stamp pdf.stamp ++ sgml.stamp html.stamp pdf.stamp + + SCANOBJ_FILES = \ + $(DOC_MODULE).args \ +@@ -120,27 +120,12 @@ + $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +-#### templates #### +- +-tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt +- @echo ' DOC Rebuilding template files' +- @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) +- @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ +- if test -w $(abs_srcdir) ; then \ +- cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \ +- fi \ +- fi +- @touch tmpl-build.stamp +- +-tmpl.stamp: tmpl-build.stamp +- @true +- + $(srcdir)/tmpl/*.sgml: + @true + + #### xml #### + +-sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) ++sgml-build.stamp: $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo ' DOC Building XML' + @-chmod -R u+w $(srcdir) + @_source_dir='' ; \ + --- a/gtkdoc/Makefile.am 2009-01-21 21:52:46.000000000 +0100 ++++ b/gtkdoc/Makefile.am 2023-08-15 17:41:59.002498772 +0200 +@@ -31,10 +31,6 @@ + # e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml + MKDB_OPTIONS=--sgml-mode --output-format=xml + +-# Extra options to supply to gtkdoc-mktmpl +-# e.g. MKTMPL_OPTIONS=--only-section-tmpl +-MKTMPL_OPTIONS= +- + # Extra options to supply to gtkdoc-fixref. Not normally needed. + # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html + FIXXREF_OPTIONS= diff --git a/meta-gnome/recipes-support/libcanberra/libcanberra_0.30.bb b/meta-gnome/recipes-support/libcanberra/libcanberra_0.30.bb index b99174f..95c9479 100644 --- a/meta-gnome/recipes-support/libcanberra/libcanberra_0.30.bb +++ b/meta-gnome/recipes-support/libcanberra/libcanberra_0.30.bb @@ -1,30 +1,64 @@ -SUMMARY = "An implementation of XDG Sound Theme and Name specification for generating sound events on free desktops" -HOMEPAGE = "http://0pointer.de/lennart/projects/libcanberra" -LICENSE = "LGPL-2.1-only" -LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1" +SUMMARY = "Implementation of XDG Sound Theme and Name Specifications" +DESCRIPTION = "Libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops." +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://src/canberra.h;beginline=7;endline=24;md5=c616c687cf8da540a14f917e0d23ab03" -SRC_URI = "http://0pointer.de/lennart/projects/libcanberra/libcanberra-${PV}.tar.xz" +DEPENDS = "libtool libvorbis" + +inherit autotools gtk-doc + +SRC_URI = " \ + http://0pointer.de/lennart/projects/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch \ + file://0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch \ + file://0001-remove-dropped-templates.patch \ +" SRC_URI[md5sum] = "34cb7e4430afaf6f447c4ebdb9b42072" SRC_URI[sha256sum] = "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72" -DEPENDS = "libtool glib-2.0 alsa-lib libvorbis systemd gtk+3" - -FILES:${PN} += "\ - ${libdir}/${PN}-${PV} \ - ${datadir}/gnome \ - ${datadir}/gdm \ - ${libdir}/gtk-3.0 \ -" -FILES:${PN}-dev += "\ - ${libdir}/gnome-settings-daemon-3.0 \ - ${libdir}/gtk-3.0/modules/libcanberra-gtk-module.so \ +EXTRA_OECONF = "\ + --enable-null \ + --disable-oss \ + --disable-tdb \ + --disable-lynx \ " -do_install:append () { - rm -rf ${D}/${datadir}/vala +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk gtk3', '', d)} \ +" +PACKAGECONFIG[alsa] = "--enable-alsa, --disable-alsa, alsa-lib" +PACKAGECONFIG[pulseaudio] = "--enable-pulse, --disable-pulse, pulseaudio" +PACKAGECONFIG[gstreamer] = "--enable-gstreamer, --disable-gstreamer, gstreamer1.0" +PACKAGECONFIG[gtk] = "--enable-gtk, --disable-gtk, gtk+" +PACKAGECONFIG[gtk3] = "--enable-gtk3, --disable-gtk3, gtk+3" + +python populate_packages:prepend() { + plugindir = d.expand('${libdir}/${BPN}-${PV}/') + do_split_packages(d, plugindir, r'^libcanberra-(.*)\.so$', 'libcanberra-%s', '%s support library', extra_depends='' ) + do_split_packages(d, plugindir, r'^libcanberra-(.*)\.la$', 'libcanberra-%s', '%s support library', extra_depends='' ) } -inherit pkgconfig autotools +PACKAGES =+ "${PN}-gnome ${PN}-gtk2 ${PN}-gtk3 ${PN}-systemd" +PACKAGES_DYNAMIC += "^libcanberra-.*" -EXTRA_OECONF = "--disable-oss --disable-pulse --disable-gstreamer --disable-tdb --disable-lynx --disable-gtk-doc --disable-udev" +FILES:${PN} = "${bindir}/ ${libdir}/${BPN}.so.*" +FILES:${PN}-dev += "${datadir}/vala/vapi ${libdir}/*/modules/*.la ${libdir}/*/*.la" + +FILES:${PN}-dbg += "${libdir}/${BPN}-${PV}/.debug ${libdir}/gtk-*/modules/.debug" + +FILES:${PN}-gtk2 = "${libdir}/${BPN}-gtk.so.* \ + ${libdir}/gtk-2.0/modules/*.so \ + ${bindir}/canberra-gtk-play" + +# -gtk3 ships a symlink to a .so +INSANE_SKIP:${PN}-gtk3 = "dev-so" +FILES:${PN}-gtk3 = "${libdir}/${BPN}-gtk3.so.* \ + ${libdir}/gtk-3.0/modules/*.so \ + ${bindir}/canberra-gtk3-play" + +FILES:${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/ \ + ${datadir}/gdm/ ${datadir}/gnome/" + +FILES:${PN}-systemd = "${systemd_unitdir}/system/*.service" diff --git a/meta-gnome/recipes-support/libjxl/libjxl_git.bb b/meta-gnome/recipes-support/libjxl/libjxl_git.bb new file mode 100644 index 0000000..462ff12 --- /dev/null +++ b/meta-gnome/recipes-support/libjxl/libjxl_git.bb @@ -0,0 +1,44 @@ +SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)" +HOMEPAGE = "https://github.com/libjxl/libjxl/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f" + +inherit cmake pkgconfig pixbufcache mime + +DEPENDS = "gdk-pixbuf gdk-pixbuf-native" + +SRC_URI = " \ + gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1 \ +" + +PV = "0.10.2" +SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = " \ + -DJPEGXL_BUNDLE_LIBPNG=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DJPEGXL_ENABLE_PLUGINS=ON\ + -DBUILD_TESTING=OFF \ + -DJPEGXL_WARNINGS_AS_ERRORS=OFF \ + -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \ + -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \ + -DJPEGXL_ENABLE_SJPEG=OFF \ + -DJPEGXL_ENABLE_BENCHMARK=OFF \ + -DJPEGXL_ENABLE_EXAMPLES=OFF \ + -DJPEGXL_ENABLE_MANPAGES=OFF \ + -DJPEGXL_ENABLE_SKCMS=OFF \ + -DJPEGXL_ENABLE_JNI=OFF \ + -DJPEGXL_ENABLE_TCMALLOC=OFF \ + -DJPEGXL_ENABLE_TOOLS=OFF \ + -DJPEGXL_ENABLE_VIEWERS=OFF \ +" + +CXXFLAGS:append:arm = " -mfp16-format=ieee" + +FILES:${PN} += "\ + ${libdir}/gdk-pixbuf-2.0/*/*/*.so \ + ${datadir}/thumbnailers/jxl.thumbnailer \ + ${datadir}/mime/packages/image-jxl.xml \ +" diff --git a/meta-gnome/recipes-support/libopus/libopus_1.5.1.bb b/meta-gnome/recipes-support/libopus/libopus_1.5.1.bb new file mode 100644 index 0000000..4ce6dd2 --- /dev/null +++ b/meta-gnome/recipes-support/libopus/libopus_1.5.1.bb @@ -0,0 +1,56 @@ +SUMMARY = "Opus Audio Codec" +DESCRIPTION = "The Opus codec is designed for interactive \ +speech and audio transmission over the Internet. It is \ +designed by the IETF Codec Working Group and incorporates \ +technology from Skype's SILK codec and Xiph.Org's CELT codec." +HOMEPAGE = "http://www.opus-codec.org/" +SECTION = "libs/multimedia" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=4b365c2155d66e550e1447075d6744a5" + +SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz" +SRC_URI[sha256sum] = "b84610959b8d417b611aa12a22565e0a3732097c6389d19098d844543e340f85" + +S = "${WORKDIR}/opus-${PV}" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[fixed-point] = "--enable-fixed-point,," +PACKAGECONFIG[float-approx] = "--enable-float-approx,," + +EXTRA_OECONF = " \ + --with-NE10-includes=${STAGING_DIR_TARGET}${includedir} \ + --with-NE10-libraries=${STAGING_DIR_TARGET}${libdir} \ + --enable-asm \ + --enable-intrinsics \ + --enable-custom-modes \ +" + +# ne10 is available only for armv7a, armv7ve and aarch64 +DEPENDS:append:aarch64 = " ne10" +DEPENDS:append:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon"," ne10","",d)}" +DEPENDS:append:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon"," ne10","",d)}" + +python () { + if d.getVar('TARGET_FPU') in [ 'soft' ]: + d.appendVar('PACKAGECONFIG', ' fixed-point') +} + +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:389: Error: selected processor does not support Thumb mode `smull r5,r7,r1,r4' +#| {standard input}:418: Error: selected processor does not support Thumb mode `smull r5,r6,r4,r1' +#| {standard input}:448: Error: selected processor does not support Thumb mode `smull r4,r5,r1,r0' +#| {standard input}:474: Error: selected processor does not support Thumb mode `smull r0,r4,r8,r1' +#| {standard input}:510: Error: selected processor does not support Thumb mode `smull fp,r0,r10,r1' +#| {standard input}:553: Error: selected processor does not support Thumb mode `smull fp,r1,r10,r3' +#| {standard input}:741: Error: selected processor does not support Thumb mode `smull r3,r0,r6,r10' +#| {standard input}:761: Error: selected processor does not support Thumb mode `smull fp,r2,r3,r9' +#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8' +#| make[2]: *** [celt/celt.lo] Error 1 +ARM_INSTRUCTION_SET:armv5 = "arm" + +BBCLASSEXTEND = "native nativesdk" + +CVE_PRODUCT += "opus-codec:opus" diff --git a/meta-gnome/recipes-support/libwacom/libwacom_0.26.bb b/meta-gnome/recipes-support/libwacom/libwacom_0.26.bb deleted file mode 100644 index 9529eba..0000000 --- a/meta-gnome/recipes-support/libwacom/libwacom_0.26.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Library to identify and configure Wacom tablets" -HOMEPAGE = "http://linuxwacom.sourceforge.net/wiki/index.php/Libwacom" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=40a21fffb367c82f39fd91a3b137c36e" - -SRC_URI = "https://downloads.sourceforge.net/linuxwacom/libwacom-${PV}.tar.bz2" -SRC_URI[md5sum] = "00d7f50bc7feda6a01f2b2546f787bc9" -SRC_URI[sha256sum] = "c3e4109c8aa675ca42cafbf39992dcd1fd6582314441c42ba32b49f5b79cfb76" - -DEPENDS = "libgudev libxml2 glib-2.0" - -inherit pkgconfig autotools - -EXTRA_OECONF = "" - diff --git a/meta-gnome/recipes-support/libwacom/libwacom_2.8.0.bb b/meta-gnome/recipes-support/libwacom/libwacom_2.8.0.bb new file mode 100644 index 0000000..8f45221 --- /dev/null +++ b/meta-gnome/recipes-support/libwacom/libwacom_2.8.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "A tablet description library" +DESCRIPTION = "libwacom is a library to identify Wacom tablets and their model-specific features. \ + It provides easy access to information such as 'is this a built-in on-screen tablet\', \ + 'what is the size of this model', etc." +HOMEPAGE = "https://github.com/linuxwacom/libwacom" +BUGTRACKER = "https://github.com/linuxwacom/libwacom/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=40a21fffb367c82f39fd91a3b137c36e" + +SRC_URI = "git://github.com/linuxwacom/libwacom.git;branch=master;protocol=https" +SRCREV = "f5b92814320d0a5745b50b7b36103843ad23e299" + +DEPENDS = " \ + libxml2-native \ + libgudev \ +" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig + +EXTRA_OEMESON = " \ + -Dtests=disabled \ +" diff --git a/meta-gnome/recipes-support/mm/atkmm-2.36_2.36.2.bb b/meta-gnome/recipes-support/mm/atkmm-2.36_2.36.2.bb new file mode 100644 index 0000000..7d097fd --- /dev/null +++ b/meta-gnome/recipes-support/mm/atkmm-2.36_2.36.2.bb @@ -0,0 +1,23 @@ +SUMMARY = "C++ bindings for the atk" +SECTION = "libs" + +LICENSE = "LGPL-2.1-only & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "atk glibmm-2.68" + +GNOMEBN = "atkmm" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase features_check + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +SRC_URI[archive.sha256sum] = "6f62dd99f746985e573605937577ccfc944368f606a71ca46342d70e1cdae079" + +S = "${WORKDIR}/${GNOMEBN}-${PV}" + +EXTRA_OEMESON = "-Dbuild-documentation=false" + +FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4" diff --git a/meta-gnome/recipes-support/mm/atkmm_2.28.0.bb b/meta-gnome/recipes-support/mm/atkmm_2.28.0.bb deleted file mode 100644 index 4769032..0000000 --- a/meta-gnome/recipes-support/mm/atkmm_2.28.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "C++ bindings for the atk" -SECTION = "libs" - -LICENSE = "LGPL-2.1-only & GPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "atk glibmm" - -inherit features_check gnomebase autotools pkgconfig - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[archive.md5sum] = "6194ac577f15567adfa3c923944c6651" -SRC_URI[archive.sha256sum] = "4c4cfc917fd42d3879ce997b463428d6982affa0fb660cafcc0bc2d9afcedd3a" - -EXTRA_OECONF = " --disable-documentation " - -FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4" diff --git a/meta-gnome/recipes-support/mm/cairomm-1.16_1.18.0.bb b/meta-gnome/recipes-support/mm/cairomm-1.16_1.18.0.bb new file mode 100644 index 0000000..b18e161 --- /dev/null +++ b/meta-gnome/recipes-support/mm/cairomm-1.16_1.18.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "C++ bindings for Cairo graphics library" + +LICENSE = "LGPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase + +DEPENDS += "boost cairo libsigc++-3" + +SRC_URI = "https://www.cairographics.org/releases/cairomm-${PV}.tar.xz" +SRC_URI[sha256sum] = "b81255394e3ea8e8aa887276d22afa8985fc8daef60692eb2407d23049f03cfb" + +S = "${WORKDIR}/cairomm-${PV}" + +FILES:${PN}-doc += "${datadir}/devhelp" +FILES:${PN}-dev += "${libdir}/cairomm-*/" + diff --git a/meta-gnome/recipes-support/mm/cairomm_1.12.0.bb b/meta-gnome/recipes-support/mm/cairomm_1.12.0.bb deleted file mode 100644 index 5a7c468..0000000 --- a/meta-gnome/recipes-support/mm/cairomm_1.12.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "C++ bindings for Cairo graphics library" - -LICENSE = "LGPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9" - -inherit gnomebase - -DEPENDS = "cairo libsigc++-2.0" - -SRC_URI[archive.md5sum] = "c62b476b61bd0abf7e9851f417d73291" -SRC_URI[archive.sha256sum] = "a54ada8394a86182525c0762e6f50db6b9212a2109280d13ec6a0b29bfd1afe6" - -FILES:${PN}-doc += "${datadir}/devhelp" -FILES:${PN}-dev += "${libdir}/cairomm-*/" - diff --git a/meta-gnome/recipes-support/mm/glibmm-2.68_2.78.0.bb b/meta-gnome/recipes-support/mm/glibmm-2.68_2.78.0.bb new file mode 100644 index 0000000..2d9dba5 --- /dev/null +++ b/meta-gnome/recipes-support/mm/glibmm-2.68_2.78.0.bb @@ -0,0 +1,33 @@ +SUMMARY = "C++ bindings for the glib library" +HOMEPAGE = "http://www.gtkmm.org/" +SECTION = "libs" +LICENSE = "LGPL-2.1-only & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \ + file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "mm-common glib-2.0 libsigc++-3 glib-2.0-native" + +GNOMEBN = "glibmm" +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase + +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" + +SRC_URI[archive.sha256sum] = "5d2e872564996f02a06d8bbac3677e7c394af8b00dd1526aebd47af842a3ef50" + +S = "${WORKDIR}/${GNOMEBN}-${PV}" + +FILES:${PN} = "${libdir}/lib*.so.*" +FILES:${PN}-dev += "${datadir}/glibmm-* ${libdir}/${BPN}/include/ ${libdir}/${BPN}/proc/ ${libdir}/giomm-2.68/include/" + +RDEPENDS:${PN}-dev = "perl" + +EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross -Dmaintainer-mode=false" + +do_write_config:append() { + cat >${WORKDIR}/meson-${PN}.cross < -Date: Tue, 12 Jul 2011 11:46:37 +0200 -Subject: [PATCH] glibmm: add 2.28.2 - ---- - Makefile.am | 7 +------ - configure.ac | 1 - - 2 files changed, 1 insertion(+), 7 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 1b366b4..0ff58b5 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -23,12 +23,7 @@ src_subdirs = glib/src gio/src - else - src_subdirs = - endif --if ENABLE_DOCUMENTATION --doc_subdirs = docs --else --doc_subdirs = --endif --SUBDIRS = tools $(src_subdirs) glib/glibmm gio/giomm tests examples $(doc_subdirs) -+SUBDIRS = tools $(src_subdirs) glib/glibmm gio/giomm tests - - glibmm_includedir = $(includedir)/$(GLIBMM_MODULE_NAME) - glibmm_include_HEADERS = glib/glibmm.h -diff --git a/configure.ac b/configure.ac -index e706687..198e0d0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -166,7 +166,6 @@ AC_CONFIG_FILES([Makefile - gio/src/Makefile - gio/giomm/Makefile - tests/Makefile -- examples/Makefile - docs/Makefile - docs/reference/Doxyfile - MSVC_NMake/glibmm/glibmm.rc diff --git a/meta-gnome/recipes-support/mm/glibmm_2.62.0.bb b/meta-gnome/recipes-support/mm/glibmm_2.62.0.bb deleted file mode 100644 index 1f75ace..0000000 --- a/meta-gnome/recipes-support/mm/glibmm_2.62.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "C++ bindings for the glib library" -HOMEPAGE = "http://www.gtkmm.org/" -SECTION = "libs" -LICENSE = "LGPL-2.1-only & GPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \ - file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "mm-common glib-2.0 libsigc++-2.0 glib-2.0-native" -inherit gnomebase - -SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" - -SRC_URI += " \ - file://remove-examples.patch \ -" -SRC_URI[archive.md5sum] = "7da228e3f0c6a10024b9a7708c53691e" -SRC_URI[archive.sha256sum] = "36659f13cc73282392d1305858f3bbca46fbd1ce2f078cc9db8b9f79b2e93cfe" - -do_install:append() { - install -d ${D}${datadir}/glibmm-2.4 - install -d ${D}${datadir}/aclocal - - install -m 0644 glib/glibmmconfig.h ${D}${datadir}/glibmm-2.4/ - install -m 0644 scripts/glibmm_check_perl.m4 ${D}${datadir}/aclocal/ || true - - for i in generate_wrap_init.pl gmmproc; do - sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.4/proc/$i - done -} - -FILES:${PN} = "${libdir}/lib*.so.*" -FILES:${PN}-dev += "${datadir}/glibmm-* ${libdir}/glibmm-2.4/include/ ${libdir}/glibmm-2.4/proc/ ${libdir}/giomm-2.4/include/" - -RDEPENDS:${PN}-dev = "perl" -SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta-gnome/recipes-support/mm/gtkmm/0001-do-not-build-demos.patch b/meta-gnome/recipes-support/mm/gtkmm/0001-do-not-build-demos.patch deleted file mode 100644 index 176e979..0000000 --- a/meta-gnome/recipes-support/mm/gtkmm/0001-do-not-build-demos.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 6914eccee34376f9067b0ee9f17039fe182125e8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Sat, 31 Mar 2018 22:29:16 +0200 -Subject: [PATCH] do not build demos -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -They are not installed anyway and add libepoxy dependency - -Upstream-Status: Pending - -Signed-off-by: Andreas Müller ---- - Makefile.am | 3 ++- - configure.ac | 3 --- - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 984b6a7..6c754a6 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -28,7 +28,8 @@ doc_subdirs = docs - else - doc_subdirs = - endif --SUBDIRS = tools $(src_subdirs) gdk/gdkmm gtk/gtkmm tests demos $(doc_subdirs) -+ -+SUBDIRS = tools $(src_subdirs) gdk/gdkmm gtk/gtkmm tests $(doc_subdirs) - - gdkmm_includedir = $(includedir)/$(GDKMM_MODULE_NAME) - gdkmm_include_HEADERS = gdk/gdkmm.h -diff --git a/configure.ac b/configure.ac -index e5e82dc..c1c7658 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -109,11 +109,8 @@ AS_IF([test "x$gtkmm_enable_api_atkmm" != xno], - [GTKMM_MODULES="atkmm-1.6 >= 2.24.2 $GTKMM_MODULES"]) - AC_SUBST([GTKMM_MODULES]) - --AC_SUBST([GTKMM_DEMOS_EXTRA_MODULES], ['epoxy >= 1.2']) -- - PKG_CHECK_MODULES([GDKMM], [$GDKMM_MODULES]) - PKG_CHECK_MODULES([GTKMM], [$GTKMM_MODULES]) --PKG_CHECK_MODULES([GTKMM_DEMOS_EXTRA], [$GTKMM_DEMOS_EXTRA_MODULES]) - - MM_PKG_CONFIG_SUBST([GTHREAD_CFLAGS], [--cflags-only-other gthread-2.0]) - MM_PKG_CONFIG_SUBST([GTHREAD_LIBS], [--libs gthread-2.0]) --- -2.14.3 - diff --git a/meta-gnome/recipes-support/mm/gtkmm3_3.24.2.bb b/meta-gnome/recipes-support/mm/gtkmm3_3.24.2.bb deleted file mode 100644 index d851916..0000000 --- a/meta-gnome/recipes-support/mm/gtkmm3_3.24.2.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "C++ bindings for the GTK+ toolkit V3" -HOMEPAGE = "http://www.gtkmm.org/" -SECTION = "libs" - -LICENSE = "LGPL-2.1-only & GPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "atkmm pangomm glibmm gtk+3 cairomm" - -BPN = "gtkmm" - -inherit gnomebase features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[archive.md5sum] = "e311db484ca9c53f1689d35f5f58a06b" -SRC_URI[archive.sha256sum] = "6d71091bcd1863133460d4188d04102810e9123de19706fb656b7bb915b4adc3" -SRC_URI += "file://0001-do-not-build-demos.patch" - -EXTRA_OECONF = " --disable-documentation " - -FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4" diff --git a/meta-gnome/recipes-support/mm/pangomm_2.46.2.bb b/meta-gnome/recipes-support/mm/pangomm-2.48_2.50.1.bb similarity index 64% rename from meta-gnome/recipes-support/mm/pangomm_2.46.2.bb rename to meta-gnome/recipes-support/mm/pangomm-2.48_2.50.1.bb index 42074c1..2244667 100644 --- a/meta-gnome/recipes-support/mm/pangomm_2.46.2.bb +++ b/meta-gnome/recipes-support/mm/pangomm-2.48_2.50.1.bb @@ -4,15 +4,16 @@ LICENSE = "LGPL-2.1-only & GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" -DEPENDS = "mm-common cairomm glibmm pango" +DEPENDS = "mm-common cairomm-1.16 glibmm-2.68 pango" +GNOMEBN = "pangomm" GNOMEBASEBUILDCLASS = "meson" - inherit gnomebase features_check -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +SRC_URI[archive.sha256sum] = "ccc9923413e408c2bff637df663248327d72822f11e394b423e1c5652b7d9214" +REQUIRED_DISTRO_FEATURES = "x11" -SRC_URI[archive.sha256sum] = "57442ab4dc043877bfe3839915731ab2d693fc6634a71614422fb530c9eaa6f4" +S = "${WORKDIR}/${GNOMEBN}-${PV}" FILES:${PN} = "${libdir}/lib*.so.*" FILES:${PN}-dev += "${libdir}/*/include/ ${libdir}/pangomm-*/" diff --git a/meta-gnome/recipes-support/rtkit/rtkit_0.13.bb b/meta-gnome/recipes-support/rtkit/rtkit_0.13.bb new file mode 100644 index 0000000..4f06e55 --- /dev/null +++ b/meta-gnome/recipes-support/rtkit/rtkit_0.13.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "REALTIMEKIT Realtime Policy and Watchdog Daemon" +LICENSE = "GPL-3.0-only & BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a8e768468b658b3ed44971b53d4a6716" + +SRC_URI = "git://github.com/heftig/rtkit.git;protocol=https;branch=master" + +SRCREV = "b9169402fe5e82d20efb754509eb0b191f214599" +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check useradd + +REQUIRED_DISTRO_FEATURES = "polkit" + +DEPENDS = "dbus libcap polkit xxd-native" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = ",,systemd" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "--system --no-create-home --user-group --shell /bin/nologin rtkit" + +FILES:${PN} += "${libdir} ${datadir} ${systemd_system_unitdir}" +