diff --git a/meta-citadel/recipes-citadel/bbappends/gstreamer1.0-plugins-good_%.bbappend b/meta-citadel/recipes-citadel/bbappends/gstreamer1.0-plugins-good_%.bbappend new file mode 100644 index 0000000..f3f8767 --- /dev/null +++ b/meta-citadel/recipes-citadel/bbappends/gstreamer1.0-plugins-good_%.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG="orc soup3 pulseaudio x11 asm bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 speex taglib v4l2 vpx" diff --git a/meta-citadel/recipes-citadel/bbappends/libsoup-2.4%.bbappend b/meta-citadel/recipes-citadel/bbappends/libsoup-2.4%.bbappend deleted file mode 100644 index 061275a..0000000 --- a/meta-citadel/recipes-citadel/bbappends/libsoup-2.4%.bbappend +++ /dev/null @@ -1,2 +0,0 @@ -# rest requires libsoup-gnome-2.4 -PACKAGECONFIG = "gnome" diff --git a/meta-citadel/recipes-citadel/bbappends/mozjs-102_%.bbappend b/meta-citadel/recipes-citadel/bbappends/mozjs-115_%.bbappend similarity index 100% rename from meta-citadel/recipes-citadel/bbappends/mozjs-102_%.bbappend rename to meta-citadel/recipes-citadel/bbappends/mozjs-115_%.bbappend diff --git a/meta-citadel/recipes-citadel/packagegroups/packagegroup-gnome.bb b/meta-citadel/recipes-citadel/packagegroups/packagegroup-gnome.bb index 59d1ead..526e16f 100644 --- a/meta-citadel/recipes-citadel/packagegroups/packagegroup-gnome.bb +++ b/meta-citadel/recipes-citadel/packagegroups/packagegroup-gnome.bb @@ -15,6 +15,7 @@ RDEPENDS:${PN} = "\ gnome-disk-utility \ gnome-system-monitor \ libgnome-desktop \ + libsoup \ mutter \ gjs \ gvfs \ diff --git a/meta-citadel/recipes-support/libblockdev/libblockdev_2.26.bb b/meta-citadel/recipes-support/libblockdev/libblockdev_2.28.bb similarity index 81% rename from meta-citadel/recipes-support/libblockdev/libblockdev_2.26.bb rename to meta-citadel/recipes-support/libblockdev/libblockdev_2.28.bb index 1c77321..2e7412e 100644 --- a/meta-citadel/recipes-support/libblockdev/libblockdev_2.26.bb +++ b/meta-citadel/recipes-support/libblockdev/libblockdev_2.28.bb @@ -8,32 +8,36 @@ SECTION = "devel/lib" LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c" -inherit autotools gobject-introspection pkgconfig +inherit autotools gobject-introspection pkgconfig lib_package -SRC_URI = "git://github.com/storaged-project/libblockdev;branch=2.x-branch;protocol=https" -SRCREV = "47ff12242c89e36a33259d18b7068b26c3bb1c64" +DEPENDS = "autoconf-archive-native glib-2.0 kmod udev" + +SRC_URI = "git://github.com/storaged-project/libblockdev;branch=2.x-branch;protocol=https \ +" +SRCREV = "1412dc51c8f76bf8d9a6008228737db4a9a26d69" S = "${WORKDIR}/git" FILES:${PN} += "${libdir}/python2.7/dist-packages ${libdir}/python3.*/site-packages" -PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath nvdimm" +PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath nvdimm tools" PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python" PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools, lvm2" PACKAGECONFIG[lvm-dbus] = "--with-lvm_dbus, --without-lvm_dbus, multipath-tools, lvm2" PACKAGECONFIG[dm] = "--with-dm, --without-dm, multipath-tools, lvm2" PACKAGECONFIG[dmraid] = "--with-dmraid, --without-dmraid" -PACKAGECONFIG[kmod] = "--with-kbd, --without-kbd, kmod" +PACKAGECONFIG[kmod] = "--with-kbd, --without-kbd,libbytesize" PACKAGECONFIG[parted] = "--with-part, --without-part, parted" PACKAGECONFIG[fs] = "--with-fs, --without-fs, util-linux" PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native" PACKAGECONFIG[nvdimm] = "--with-nvdimm, --without-nvdimm, ndctl util-linux" -PACKAGECONFIG[vdo] = "--with-vdo, --without-vdo" +PACKAGECONFIG[vdo] = "--with-vdo, --without-vdo,libbytesize" PACKAGECONFIG[escrow] = "--with-escrow, --without-escrow, nss volume-key" PACKAGECONFIG[btrfs] = "--with-btrfs,--without-btrfs,libbytesize btrfs-tools" PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,cryptsetup nss volume-key" PACKAGECONFIG[mdraid] = "--with-mdraid,--without-mdraid,libbytesize" PACKAGECONFIG[kbd] = "--with-kbd,--without-kbd,libbytesize" PACKAGECONFIG[mpath] = "--with-mpath,--without-mpath, multipath-tools, lvm2" +PACKAGECONFIG[tools] = "--with-tools,--without-tools,libbytesize libdevmapper" export GIR_EXTRA_LIBS_PATH="${B}/src/utils/.libs" diff --git a/meta-citadel/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch b/meta-citadel/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch new file mode 100644 index 0000000..d905bf1 --- /dev/null +++ b/meta-citadel/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch @@ -0,0 +1,64 @@ +From 1109c1b8259ad840ac1688d533f76ca268c67b6b Mon Sep 17 00:00:00 2001 +From: "John M. Schanck" +Date: Sat, 5 Feb 2022 11:12:43 +0000 +Subject: [PATCH] Bug 1750624 - Pin validation date for PayPalEE test cert. + r=nss-reviewers,bbeurdouche,rrelyea + +Differential Revision: https://phabricator.services.mozilla.com/D136289 + +--HG-- +extra : moz-landing-system : lando + +Upstream-Status: Backport + +--- + tests/chains/chains.sh | 6 +++++- + tests/chains/scenarios/realcerts.cfg | 1 + + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/tests/chains/chains.sh b/tests/chains/chains.sh +index 32c7ef54c..e13ae52f9 100755 +--- a/nss/tests/chains/chains.sh ++++ b/nss/tests/chains/chains.sh +@@ -917,7 +917,7 @@ verify_cert() + done + + VFY_OPTS_TNAME="${DB_OPT} ${ENGINE} ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${TRUST_OPT}" +- VFY_OPTS_ALL="${DB_OPT} ${ENGINE} -vv ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${VFY_CERTS} ${TRUST_OPT}" ++ VFY_OPTS_ALL="${DB_OPT} ${ENGINE} -vv ${VFY_TIME_OPT} ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${VFY_CERTS} ${TRUST_OPT}" + + TESTNAME="Verifying certificate(s) ${VFY_LIST} with flags ${VFY_OPTS_TNAME}" + echo "${SCRIPTNAME}: ${TESTNAME}" +@@ -1118,6 +1118,7 @@ parse_config() + ;; + "verify") + VERIFY="${VALUE}" ++ VFY_TIME_OPT= + TRUST= + TRUST_AND_DB= + POLICY= +@@ -1126,6 +1127,9 @@ parse_config() + REV_OPTS= + USAGE_OPT= + ;; ++ "at_time") ++ VFY_TIME_OPT="-b ${VALUE}" ++ ;; + "cert") + VERIFY="${VERIFY} ${VALUE}" + ;; +diff --git a/tests/chains/scenarios/realcerts.cfg b/tests/chains/scenarios/realcerts.cfg +index 305443fc3..f8b0fc452 100644 +--- a/nss/tests/chains/scenarios/realcerts.cfg ++++ b/nss/tests/chains/scenarios/realcerts.cfg +@@ -22,6 +22,7 @@ verify TestUser51:x + + verify PayPalEE:x + policy OID.2.16.840.1.114412.2.1 ++ at_time 2201010000Z + result pass + + verify BrAirWaysBadSig:x +-- +2.25.1 + diff --git a/meta-citadel/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch b/meta-citadel/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch index 65e1500..72ee1ee 100644 --- a/meta-citadel/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch +++ b/meta-citadel/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch @@ -1,4 +1,4 @@ -From 8b67c22b057e158f61c9fdd5b01f37195c6f5ca4 Mon Sep 17 00:00:00 2001 +From 9937e89c22eb2f2db9a936e7bc4442857b4192f5 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 18 Dec 2019 12:29:50 +0100 Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto @@ -15,19 +15,19 @@ Signed-off-by: Alexander Kanavin 2 files changed, 5 insertions(+) diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile -index fe8c526..922f67c 100644 +index b38889f..4616aac 100644 --- a/nss/lib/freebl/Makefile +++ b/nss/lib/freebl/Makefile -@@ -125,6 +125,8 @@ else - DEFINES += -DNSS_X86 - endif +@@ -139,6 +139,8 @@ endif + endif + endif endif +ifdef NSS_USE_ARM_HW_CRYPTO + DEFINES += -DNSS_USE_ARM_HW_CRYPTO ifeq ($(CPU_ARCH),aarch64) ifdef CC_IS_CLANG DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 -@@ -166,6 +168,7 @@ endif +@@ -180,6 +182,7 @@ endif endif endif endif @@ -36,7 +36,7 @@ index fe8c526..922f67c 100644 ifeq ($(OS_TARGET),OSF1) DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD diff --git a/nss/lib/freebl/gcm.c b/nss/lib/freebl/gcm.c -index c2cc18d..b77f573 100644 +index ac461b4..04cb180 100644 --- a/nss/lib/freebl/gcm.c +++ b/nss/lib/freebl/gcm.c @@ -18,6 +18,7 @@ diff --git a/meta-citadel/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch b/meta-citadel/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch index 3d90e2d..950fae6 100644 --- a/meta-citadel/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch +++ b/meta-citadel/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch @@ -1,4 +1,4 @@ -From 8cea16e7550ae14494fbb3a8fe9f5452e6bd1407 Mon Sep 17 00:00:00 2001 +From 919fc5d674fae99fe21ba1351d98b75e466f425f Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 22 Feb 2017 11:36:11 +0200 Subject: [PATCH] nss: fix support cross compiling @@ -15,10 +15,15 @@ Signed-off-by: Alexander Kanavin 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nss/coreconf/arch.mk b/nss/coreconf/arch.mk -index 790372d..2563134 100644 +index 2012d18..78fca62 100644 --- a/nss/coreconf/arch.mk +++ b/nss/coreconf/arch.mk -@@ -30,7 +30,7 @@ OS_TEST := $(shell uname -m) +@@ -26,11 +26,11 @@ OS_ARCH := $(subst /,_,$(shell uname -s) + # Attempt to differentiate between sparc and x86 Solaris + # + +-OS_TEST := $(shell uname -m) ++OS_TEST ?= $(shell uname -m) ifeq ($(OS_TEST),i86pc) OS_RELEASE := $(shell uname -r)_$(OS_TEST) else @@ -28,7 +33,7 @@ index 790372d..2563134 100644 # diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile -index 52d827c..f99f769 100644 +index 0b8c6f4..b38889f 100644 --- a/nss/lib/freebl/Makefile +++ b/nss/lib/freebl/Makefile @@ -36,6 +36,12 @@ ifdef USE_64 diff --git a/meta-citadel/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/meta-citadel/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch index e87dc9f..4c9bea3 100644 --- a/meta-citadel/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch +++ b/meta-citadel/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch @@ -1,4 +1,4 @@ -From c5b2c6327f3692ed07bf8d212123e0bf08485722 Mon Sep 17 00:00:00 2001 +From f613c9a9107435a40d91329f33f12cfb16927f07 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 7 Mar 2020 08:34:02 -0800 Subject: [PATCH] nss,nspr: Add recipes diff --git a/meta-citadel/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch b/meta-citadel/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch index 6f02dbc..735b06b 100644 --- a/meta-citadel/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch +++ b/meta-citadel/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch @@ -1,4 +1,4 @@ -From 028ec9c7e9f7a6f083eec987f3ad7e7623398d9d Mon Sep 17 00:00:00 2001 +From 2ce67b1f4b1f582d556ae058da10698bbaa0edc1 Mon Sep 17 00:00:00 2001 From: Ovidiu Panait Date: Mon, 13 Jul 2020 12:12:31 +0300 Subject: [PATCH] nss: fix incorrect shebang of perl diff --git a/meta-citadel/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta-citadel/recipes-support/nss/nss/nss-fix-nsinstall-build.patch index 224a5d2..a1897f8 100644 --- a/meta-citadel/recipes-support/nss/nss/nss-fix-nsinstall-build.patch +++ b/meta-citadel/recipes-support/nss/nss/nss-fix-nsinstall-build.patch @@ -1,4 +1,4 @@ -From 2701905e689cf7c1ee7ca2d116f20b5bbc146431 Mon Sep 17 00:00:00 2001 +From f9b2b1c738576a17460aebd005f511f427aa1974 Mon Sep 17 00:00:00 2001 From: Wenzong Fan Date: Sat, 7 Mar 2020 08:34:02 -0800 Subject: [PATCH] Fix nss multilib build on openSUSE 11.x 32bit diff --git a/meta-citadel/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch b/meta-citadel/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch index 7dbc1a3..8c715cc 100644 --- a/meta-citadel/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch +++ b/meta-citadel/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch @@ -1,4 +1,4 @@ -From dc51214895bcd63fc8eb8d1fe7941cd3e5500620 Mon Sep 17 00:00:00 2001 +From 73edfbdf33fe4e41724e7e947033d8caeec8f3d0 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Sat, 7 Mar 2020 08:34:02 -0800 Subject: [PATCH] nss:no rpath for cross compiling diff --git a/meta-citadel/recipes-support/nss/nss/pqg.c-ULL_addend.patch b/meta-citadel/recipes-support/nss/nss/pqg.c-ULL_addend.patch index 5505ae3..589b4d5 100644 --- a/meta-citadel/recipes-support/nss/nss/pqg.c-ULL_addend.patch +++ b/meta-citadel/recipes-support/nss/nss/pqg.c-ULL_addend.patch @@ -1,4 +1,4 @@ -From a550bdf458f11dff46ebddbac94cf48c27d3471e Mon Sep 17 00:00:00 2001 +From cbd367160338847b28fc801a12c74f1c8b5b03ee Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 7 Mar 2020 08:34:02 -0800 Subject: [PATCH] nss does not build on mips with clang because wrong types are @@ -16,7 +16,7 @@ Upstream-Status: Pending 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nss/lib/freebl/pqg.c b/nss/lib/freebl/pqg.c -index 626b2fb..052ad36 100644 +index 1b03278..ad895b7 100644 --- a/nss/lib/freebl/pqg.c +++ b/nss/lib/freebl/pqg.c @@ -326,8 +326,8 @@ generate_h_candidate(SECItem *hit, mp_int *H) diff --git a/meta-citadel/recipes-support/nss/nss_3.64.bb b/meta-citadel/recipes-support/nss/nss_3.74.bb similarity index 91% rename from meta-citadel/recipes-support/nss/nss_3.64.bb rename to meta-citadel/recipes-support/nss/nss_3.74.bb index c704ebc..ea5abe0 100644 --- a/meta-citadel/recipes-support/nss/nss_3.64.bb +++ b/meta-citadel/recipes-support/nss/nss_3.74.bb @@ -9,7 +9,7 @@ HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/" SECTION = "libs" DEPENDS = "sqlite3 nspr zlib nss-native" -DEPENDS_class-native = "sqlite3-native nspr-native zlib-native" +DEPENDS:class-native = "sqlite3-native nspr-native zlib-native" LICENSE = "(MPL-2.0 & MIT) | (MPL-2.0 & GPL-2.0-or-later & MIT) | (MPL-2.0 & LGPL-2.1-or-later & MIT)" @@ -20,7 +20,7 @@ LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \ VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}" -SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \ +SRC_URI = "http://ftp.mozilla.org/pub/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \ file://nss.pc.in \ file://0001-nss-fix-support-cross-compiling.patch \ file://nss-no-rpath-for-cross-compiling.patch \ @@ -32,8 +32,9 @@ SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSIO file://system-pkcs11.txt \ file://nss-fix-nsinstall-build.patch \ file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \ + file://0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch \ " -SRC_URI[sha256sum] = "d3175427172e9c3a6f1ebc74452cb791590f28191c6a1a443dbc0d87c9df1126" +SRC_URI[sha256sum] = "88928811f9f40f87d42e2eaccdf6e454562e51486067f2ddbe90aa47ea6cd056" UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases" UPSTREAM_CHECK_REGEX = "NSS_(?P.+)_release_notes" @@ -43,12 +44,10 @@ inherit siteinfo TD = "${S}/tentative-dist" TDS = "${S}/tentative-dist-staging" -# cortex-a55 is ARMv8.2-a based but libatomic explicitly asks for -march=armv8.1-a -# which caused -march conflicts in gcc -TUNE_CCARGS:remove = "-mcpu=cortex-a55+crc -mcpu=cortex-a55 -mcpu=cortex-a55+crc+crypto" - TARGET_CC_ARCH += "${LDFLAGS}" +CFLAGS:append:class-native = " -D_XOPEN_SOURCE " + do_configure:prepend:libc-musl () { sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk } @@ -96,6 +95,7 @@ do_compile() { export NS_USE_GCC=1 export NSS_USE_SYSTEM_SQLITE=1 export NSS_ENABLE_ECC=1 + export NSS_ENABLE_WERROR=0 ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)} @@ -280,3 +280,11 @@ FILES:${PN}-dev = "\ RDEPENDS:${PN}-smime = "perl" BBCLASSEXTEND = "native nativesdk" + +CVE_PRODUCT += "network_security_services" + +CVE_STATUS_GROUPS += "CVE_STATUS_NSS" +CVE_STATUS_NSS[status] = "not-applicable-config: This only affect the legacy db (libnssdbm), only compiled with --enable-legacy-db" +CVE_STATUS_NSS = "CVE-2017-11695 CVE-2017-11696 CVE-2017-11697 CVE-2017-11698" + +CVE_STATUS[CVE-2022-3479] = "not-applicable-config: vulnerability was introduced in 3.77 and fixed in 3.87" diff --git a/meta-citadel/recipes-support/ovmf/ovmf-shell-image.bb b/meta-citadel/recipes-support/ovmf/ovmf-shell-image.bb deleted file mode 100644 index 50c4517..0000000 --- a/meta-citadel/recipes-support/ovmf/ovmf-shell-image.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "boot image with UEFI shell and tools" -COMPATIBLE_HOST:class-target='(i.86|x86_64).*' - -# For this image recipe, only the wic format with a -# single vfat partition makes sense. Because we have no -# boot loader and no rootfs partition, not additional -# tools are needed for this .wks file. -IMAGE_FSTYPES:forcevariable = 'wic' -WKS_FILE = "ovmf/ovmf-shell-image.wks" -WKS_FILE_DEPENDS = "" - -inherit image - -# We want a minimal image with just ovmf-shell-efi unpacked in it. We -# avoid installing unnecessary stuff as much as possible, but some -# things still get through and need to be removed. -PACKAGE_INSTALL = "ovmf-shell-efi" -LINGUAS_INSTALL = "" -do_image () { - rm -rf `ls -d ${IMAGE_ROOTFS}/* | grep -v efi` -} diff --git a/meta-citadel/recipes-support/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch b/meta-citadel/recipes-support/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch deleted file mode 100644 index 89d9ffa..0000000 --- a/meta-citadel/recipes-support/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1125f5a02c2f327aeffe2d6b66a9d816ad2eeec0 Mon Sep 17 00:00:00 2001 -From: Ricardo Neri -Date: Thu, 9 Jun 2016 02:23:01 -0700 -Subject: [PATCH 1/6] ovmf: update path to native BaseTools - -BaseTools is a set of utilities to build EDK-based firmware. These utilities -are used during the build process. Thus, they need to be built natively. -When cross-compiling, we need to provide a path to the location of these -tools. The BBAKE_EDK_TOOLS_PATH string is used as a pattern to be replaced -with the appropriate location before building. - -Signed-off-by: Ricardo Neri -Upstream-Status: Pending ---- - OvmfPkg/build.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh -index 91b1442ade..1858dae31a 100755 ---- a/OvmfPkg/build.sh -+++ b/OvmfPkg/build.sh -@@ -24,7 +24,7 @@ then - # this assumes svn pulls have the same root dir - # export EDK_TOOLS_PATH=`pwd`/../BaseTools - # This version is for the tools source in edk2 -- export EDK_TOOLS_PATH=`pwd`/BaseTools -+ export EDK_TOOLS_PATH=BBAKE_EDK_TOOLS_PATH/BaseTools - echo $EDK_TOOLS_PATH - source edksetup.sh BaseTools - else --- -2.32.0 - diff --git a/meta-citadel/recipes-support/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/meta-citadel/recipes-support/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch deleted file mode 100644 index f6141c8..0000000 --- a/meta-citadel/recipes-support/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 19d4c7f9812062a683b3ba60b35aac0461190456 Mon Sep 17 00:00:00 2001 -From: Ricardo Neri -Date: Fri, 26 Jul 2019 17:34:26 -0400 -Subject: [PATCH 2/6] BaseTools: makefile: adjust to build in under bitbake - -Prepend the build flags with those of bitbake. This is to build -using the bitbake native sysroot include and library directories. - -Signed-off-by: Ricardo Neri -Upstream-Status: Pending ---- - BaseTools/Source/C/Makefiles/header.makefile | 17 +++++++++-------- - 1 file changed, 9 insertions(+), 8 deletions(-) - -diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile -index 0df728f327..1299d47c87 100644 ---- a/BaseTools/Source/C/Makefiles/header.makefile -+++ b/BaseTools/Source/C/Makefiles/header.makefile -@@ -75,35 +75,36 @@ $(error Bad HOST_ARCH) - endif - - INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE) --BUILD_CPPFLAGS = $(INCLUDE) -+BUILD_CPPFLAGS += $(INCLUDE) - - # keep EXTRA_OPTFLAGS last - BUILD_OPTFLAGS = -O2 $(EXTRA_OPTFLAGS) - - ifeq ($(DARWIN),Darwin) - # assume clang or clang compatible flags on OS X --BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ - -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -g - else - ifeq ($(CXX), llvm) --BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ - -fno-delete-null-pointer-checks -Wall -Werror \ - -Wno-deprecated-declarations -Wno-self-assign \ - -Wno-unused-result -nostdlib -g - else --BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ - -fno-delete-null-pointer-checks -Wall -Werror \ - -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \ - -Wno-unused-result -nostdlib -g - endif - endif - ifeq ($(CXX), llvm) --BUILD_LFLAGS = --BUILD_CXXFLAGS = -Wno-deprecated-register -Wno-unused-result -+BUILD_LFLAGS = $(LDFLAGS) -+BUILD_CXXFLAGS += -Wno-deprecated-register -Wno-unused-result - else --BUILD_LFLAGS = --BUILD_CXXFLAGS = -Wno-unused-result -+BUILD_LFLAGS = $(LDFLAGS) -+BUILD_CXXFLAGS += -Wno-unused-result - endif -+ - ifeq ($(HOST_ARCH), IA32) - # - # Snow Leopard is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults --- -2.32.0 - diff --git a/meta-citadel/recipes-support/ovmf/ovmf/0005-debug-prefix-map.patch b/meta-citadel/recipes-support/ovmf/ovmf/0005-debug-prefix-map.patch deleted file mode 100644 index 9e345f4..0000000 --- a/meta-citadel/recipes-support/ovmf/ovmf/0005-debug-prefix-map.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 860bb1979f3578bb83257076fe0f3bd33f9d68bf Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 14 Jun 2021 19:56:28 +0200 -Subject: [PATCH 5/6] debug prefix map - -We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in - --debug-prefix-map to nasm (we carry a patch to nasm for this). The -tools definitions file is built by ovmf-native so we need to pass this in -at target build time when we know the right values so we use the environment. - -By using determininistc file paths during the ovmf build, it removes the -opportunitity for gcc/ld to change the output binaries due to path lengths -overflowing section sizes and causing small changes in the binary output. -Previously we relied on the stripped output being the same which isn't always -the case if the size of the debug symbols varies. - -Upstream-Status: Submitted [https://github.com/tianocore/edk2/pull/2202] -Signed-off-by: Richard Purdie -Signed-off-by: Alexander Kanavin ---- - BaseTools/Conf/tools_def.template | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template -index 36241b6ede..947fbf2e8d 100755 ---- a/BaseTools/Conf/tools_def.template -+++ b/BaseTools/Conf/tools_def.template -@@ -1863,7 +1863,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_N - *_*_*_DTCPP_PATH = DEF(DTCPP_BIN) - *_*_*_DTC_PATH = DEF(DTC_BIN) - --DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -+DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common ENV(GCC_PREFIX_MAP) - DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe - DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe - DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie -@@ -1881,8 +1881,8 @@ DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _Ref - DEFINE GCC_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) - DEFINE GCC_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) - DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map --DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros AutoGen.h --DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h -+DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros AutoGen.h ENV(GCC_PREFIX_MAP) -+DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h ENV(GCC_PREFIX_MAP) - DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h - DEFINE GCC_ASLPP_FLAGS = -x c -E -include AutoGen.h - DEFINE GCC_ASLCC_FLAGS = -x c -@@ -2027,7 +2027,7 @@ DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include A - *_GCC48_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS) - *_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) - *_GCC48_IA32_OBJCOPY_FLAGS = --*_GCC48_IA32_NASM_FLAGS = -f elf32 -+*_GCC48_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os - RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -@@ -2055,7 +2055,7 @@ RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but - *_GCC48_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS) - *_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) - *_GCC48_X64_OBJCOPY_FLAGS = --*_GCC48_X64_NASM_FLAGS = -f elf64 -+*_GCC48_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os - RELEASE_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable -@@ -2167,7 +2167,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s - *_GCC49_IA32_DLINK2_FLAGS = DEF(GCC49_IA32_DLINK2_FLAGS) - *_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) - *_GCC49_IA32_OBJCOPY_FLAGS = --*_GCC49_IA32_NASM_FLAGS = -f elf32 -+*_GCC49_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os - RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable -@@ -2195,7 +2195,7 @@ RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but - *_GCC49_X64_DLINK2_FLAGS = DEF(GCC49_X64_DLINK2_FLAGS) - *_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) - *_GCC49_X64_OBJCOPY_FLAGS = --*_GCC49_X64_NASM_FLAGS = -f elf64 -+*_GCC49_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os - RELEASE_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable -@@ -2313,7 +2313,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 - *_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie - *_GCC5_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) - *_GCC5_IA32_OBJCOPY_FLAGS = --*_GCC5_IA32_NASM_FLAGS = -f elf32 -+*_GCC5_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os - DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 -@@ -2345,7 +2345,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, - *_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) - *_GCC5_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) - *_GCC5_X64_OBJCOPY_FLAGS = --*_GCC5_X64_NASM_FLAGS = -f elf64 -+*_GCC5_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os - DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os --- -2.32.0 - diff --git a/meta-citadel/recipes-support/ovmf/ovmf/0006-reproducible.patch b/meta-citadel/recipes-support/ovmf/ovmf/0006-reproducible.patch deleted file mode 100644 index 846f408..0000000 --- a/meta-citadel/recipes-support/ovmf/ovmf/0006-reproducible.patch +++ /dev/null @@ -1,180 +0,0 @@ -From 27ed9962f5cb3afcc44d6c96c53277132a999712 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 14 Jun 2021 19:57:30 +0200 -Subject: [PATCH 6/6] reproducible - -This patch fixes various things which make the build more reproducible. Some changes -here only change intermediate artefacts but that means when you have two build trees -giving differing results, the differences can be isolated more easily. The issues here -usually become apparent with longer paths. - -This was all debugged with: -TMPDIR = "${TOPDIR}/tmp" -vs. -TMPDIR = "${TOPDIR}/tmp-inital-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath" - -The patch specifically: - - * Sorts output in GNUmakefile - * Always generates indirect flags files used to avoid pathlength issues else the - compile commands suddenly change when using longer paths - * Sorts the AutoGenTimeStamp file contents - * Makes the TargetDescBlock objects from BuildEngine sortable to allow the makefile fix - * Fix ElfConvert within GenFw so that only the basename of the binary being converted - is used, else the output from "GenFw XXX.bin" differs from "GenFw /long/path/XXX.bin" - with sufficiently long paths - -Upstream-Status: Submitted [https://github.com/tianocore/edk2/pull/2176] -Signed-off-by: Richard Purdie -Signed-off-by: Alexander Kanavin ---- - BaseTools/Source/C/GenFw/Elf64Convert.c | 8 ++++--- - .../Source/Python/AutoGen/BuildEngine.py | 3 +++ - BaseTools/Source/Python/AutoGen/GenMake.py | 24 +++++++++---------- - .../Source/Python/AutoGen/ModuleAutoGen.py | 5 +++- - 4 files changed, 24 insertions(+), 16 deletions(-) - -diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c -index d097db8632..a87ae6f3d0 100644 ---- a/BaseTools/Source/C/GenFw/Elf64Convert.c -+++ b/BaseTools/Source/C/GenFw/Elf64Convert.c -@@ -14,6 +14,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent - #ifndef __GNUC__ - #include - #include -+#else -+#define _GNU_SOURCE - #endif - #include - #include -@@ -769,7 +771,7 @@ ScanSections64 ( - } - mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) + - sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) + -- strlen(mInImageName) + 1; -+ strlen(basename(mInImageName)) + 1; - - mCoffOffset = CoffAlign(mCoffOffset); - if (SectionCount == 0) { -@@ -1608,7 +1610,7 @@ WriteDebug64 ( - EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *Dir; - EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10; - -- Len = strlen(mInImageName) + 1; -+ Len = strlen(basename(mInImageName)) + 1; - - Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset); - Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW; -@@ -1618,7 +1620,7 @@ WriteDebug64 ( - - Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1); - Nb10->Signature = CODEVIEW_SIGNATURE_NB10; -- strcpy ((char *)(Nb10 + 1), mInImageName); -+ strcpy ((char *)(Nb10 + 1), basename(mInImageName)); - - - NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset); -diff --git a/BaseTools/Source/Python/AutoGen/BuildEngine.py b/BaseTools/Source/Python/AutoGen/BuildEngine.py -index 722fead75a..8f1c236970 100644 ---- a/BaseTools/Source/Python/AutoGen/BuildEngine.py -+++ b/BaseTools/Source/Python/AutoGen/BuildEngine.py -@@ -70,6 +70,9 @@ class TargetDescBlock(object): - else: - return str(Other) == self.Target.Path - -+ def __lt__(self, other): -+ return str(self) < str(other) -+ - def AddInput(self, Input): - if Input not in self.Inputs: - self.Inputs.append(Input) -diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py -index 961b2ab1c3..23c1592025 100755 ---- a/BaseTools/Source/Python/AutoGen/GenMake.py -+++ b/BaseTools/Source/Python/AutoGen/GenMake.py -@@ -575,7 +575,7 @@ cleanlib: - os.remove(RespFileList) - - # convert source files and binary files to build targets -- self.ResultFileList = [str(T.Target) for T in MyAgo.CodaTargetList] -+ self.ResultFileList = sorted([str(T.Target) for T in MyAgo.CodaTargetList]) - if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0: - EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build", - ExtraData="[%s]" % str(MyAgo)) -@@ -726,7 +726,7 @@ cleanlib: - OutputFile = '' - DepsFileList = [] - -- for Cmd in self.GenFfsList: -+ for Cmd in sorted(self.GenFfsList): - if Cmd[2]: - for CopyCmd in Cmd[2]: - Src, Dst = CopyCmd -@@ -759,7 +759,7 @@ cleanlib: - self.BuildTargetList.append('\t%s' % CmdString) - - self.ParseSecCmd(DepsFileList, Cmd[1]) -- for SecOutputFile, SecDepsFile, SecCmd in self.FfsOutputFileList : -+ for SecOutputFile, SecDepsFile, SecCmd in sorted(self.FfsOutputFileList): - self.BuildTargetList.append('%s : %s' % (self.ReplaceMacro(SecOutputFile), self.ReplaceMacro(SecDepsFile))) - self.BuildTargetList.append('\t%s' % self.ReplaceMacro(SecCmd)) - self.FfsOutputFileList = [] -@@ -798,13 +798,13 @@ cleanlib: - - def CommandExceedLimit(self): - FlagDict = { -- 'CC' : { 'Macro' : '$(CC_FLAGS)', 'Value' : False}, -- 'PP' : { 'Macro' : '$(PP_FLAGS)', 'Value' : False}, -- 'APP' : { 'Macro' : '$(APP_FLAGS)', 'Value' : False}, -- 'ASLPP' : { 'Macro' : '$(ASLPP_FLAGS)', 'Value' : False}, -- 'VFRPP' : { 'Macro' : '$(VFRPP_FLAGS)', 'Value' : False}, -- 'ASM' : { 'Macro' : '$(ASM_FLAGS)', 'Value' : False}, -- 'ASLCC' : { 'Macro' : '$(ASLCC_FLAGS)', 'Value' : False}, -+ 'CC' : { 'Macro' : '$(CC_FLAGS)', 'Value' : True}, -+ 'PP' : { 'Macro' : '$(PP_FLAGS)', 'Value' : True}, -+ 'APP' : { 'Macro' : '$(APP_FLAGS)', 'Value' : True}, -+ 'ASLPP' : { 'Macro' : '$(ASLPP_FLAGS)', 'Value' : True}, -+ 'VFRPP' : { 'Macro' : '$(VFRPP_FLAGS)', 'Value' : True}, -+ 'ASM' : { 'Macro' : '$(ASM_FLAGS)', 'Value' : True}, -+ 'ASLCC' : { 'Macro' : '$(ASLCC_FLAGS)', 'Value' : True}, - } - - RespDict = {} -@@ -1007,9 +1007,9 @@ cleanlib: - if not self.ObjTargetDict.get(T.Target.SubDir): - self.ObjTargetDict[T.Target.SubDir] = set() - self.ObjTargetDict[T.Target.SubDir].add(NewFile) -- for Type in self._AutoGenObject.Targets: -+ for Type in sorted(self._AutoGenObject.Targets): - resp_file_number = 0 -- for T in self._AutoGenObject.Targets[Type]: -+ for T in sorted(self._AutoGenObject.Targets[Type]): - # Generate related macros if needed - if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros: - self.FileListMacros[T.FileListMacro] = [] -diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py -index d70b0d7ae8..25dca9a6df 100755 ---- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py -+++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py -@@ -1484,6 +1484,9 @@ class ModuleAutoGen(AutoGen): - for File in Files: - if File.lower().endswith('.pdb'): - AsBuiltInfDict['binary_item'].append('DISPOSABLE|' + File) -+ -+ AsBuiltInfDict['binary_item'] = sorted(AsBuiltInfDict['binary_item']) -+ - HeaderComments = self.Module.HeaderComments - StartPos = 0 - for Index in range(len(HeaderComments)): -@@ -1759,7 +1762,7 @@ class ModuleAutoGen(AutoGen): - if os.path.exists (self.TimeStampPath): - os.remove (self.TimeStampPath) - -- SaveFileOnChange(self.TimeStampPath, "\n".join(FileSet), False) -+ SaveFileOnChange(self.TimeStampPath, "\n".join(sorted(FileSet)), False) - - # Ignore generating makefile when it is a binary module - if self.IsBinaryModule: --- -2.32.0 - diff --git a/meta-citadel/recipes-support/ovmf/ovmf/ovmf-shell-image.wks b/meta-citadel/recipes-support/ovmf/ovmf/ovmf-shell-image.wks deleted file mode 100644 index 1d2f16b..0000000 --- a/meta-citadel/recipes-support/ovmf/ovmf/ovmf-shell-image.wks +++ /dev/null @@ -1,4 +0,0 @@ -# short-description: Create an EFI disk image with just the EFI system partition - -part / --source rootfs --ondisk sda --fstype=vfat --align 1024 -bootloader --ptable gpt --timeout=5 diff --git a/meta-citadel/recipes-support/ovmf/ovmf_git.bb b/meta-citadel/recipes-support/ovmf/ovmf_git.bb deleted file mode 100644 index 4054223..0000000 --- a/meta-citadel/recipes-support/ovmf/ovmf_git.bb +++ /dev/null @@ -1,265 +0,0 @@ -SUMMARY = "OVMF - UEFI firmware for Qemu and KVM" -DESCRIPTION = "OVMF is an EDK II based project to enable UEFI support for \ -Virtual Machines. OVMF contains sample UEFI firmware for QEMU and KVM" -HOMEPAGE = "https://github.com/tianocore/tianocore.github.io/wiki/OVMF" -LICENSE = "BSD-2-Clause-Patent" -LICENSE:class-target = "${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'BSD-2-Clause-Patent & OpenSSL', 'BSD-2-Clause-Patent', d)}" -LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=06357ddc23f46577c2aeaeaf7b776d65" - -# Enabling Secure Boot adds a dependency on OpenSSL and implies -# compiling OVMF twice, so it is disabled by default. Distros -# may change that default. -PACKAGECONFIG ??= "" -PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm', 'tpm', '', d)}" -PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'tpm', '', d)}" -PACKAGECONFIG[secureboot] = ",,," -PACKAGECONFIG[tpm] = "-D TPM_ENABLE=TRUE,-D TPM_ENABLE=FALSE,," - -# GCC12 trips on it -#see https://src.fedoraproject.org/rpms/edk2/blob/rawhide/f/0032-Basetools-turn-off-gcc12-warning.patch -BUILD_CFLAGS += "-Wno-error=stringop-overflow" - -SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \ - file://0001-ovmf-update-path-to-native-BaseTools.patch \ - file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \ - file://0005-debug-prefix-map.patch \ - file://0006-reproducible.patch \ - " - -PV = "edk2-stable202205" -SRCREV = "16779ede2d366bfc6b702e817356ccf43425bcc8" -UPSTREAM_CHECK_GITTAGREGEX = "(?Pedk2-stable.*)" - -inherit deploy - -PARALLEL_MAKE = "" - -S = "${WORKDIR}/git" - -DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native" - -EDK_TOOLS_DIR="edk2_basetools" - -# OVMF has trouble building with the default optimization of -O2. -BUILD_OPTIMIZATION="-pipe" - -# OVMF supports IA only, although it could conceivably support ARM someday. -COMPATIBLE_HOST:class-target='(i.86|x86_64).*' - -# Additional build flags for OVMF with Secure Boot. -# Fedora also uses "-D SMM_REQUIRE -D EXCLUDE_SHELL_FROM_FD". -OVMF_SECURE_BOOT_EXTRA_FLAGS ??= "" -OVMF_SECURE_BOOT_FLAGS = "-DSECURE_BOOT_ENABLE=TRUE ${OVMF_SECURE_BOOT_EXTRA_FLAGS}" - -export PYTHON_COMMAND = "${HOSTTOOLS_DIR}/python3" - -do_patch[postfuncs] += "fix_basetools_location" -fix_basetools_location () { -} -fix_basetools_location:class-target() { - # Replaces the fake path inserted by 0002-ovmf-update-path-to-native-BaseTools.patch. - # Necessary for finding the actual BaseTools from ovmf-native. - sed -i -e 's#BBAKE_EDK_TOOLS_PATH#${STAGING_BINDIR_NATIVE}/${EDK_TOOLS_DIR}#' ${S}/OvmfPkg/build.sh -} - -do_patch[postfuncs] += "fix_iasl" -fix_iasl() { -} -fix_iasl:class-native() { - # iasl is not installed under /usr/bin when building with OE. - sed -i -e 's#/usr/bin/iasl#${STAGING_BINDIR_NATIVE}/iasl#' ${S}/BaseTools/Conf/tools_def.template -} - -# Inject CC and friends into the build. LINKER already is in GNUmakefile. -# Must be idempotent and thus remove old assignments that were inserted -# earlier. -do_patch[postfuncs] += "fix_toolchain" -fix_toolchain() { - sed -i \ - -e '/^\(CC\|CXX\|AS\|AR\|LD\|LINKER\) =/d' \ - -e '/^APPLICATION/a CC = ${CC}\nCXX = ${CXX}\nAS = ${AS}\nAR = ${AR}\nLD = ${LD}\nLINKER = $(CC)' \ - ${S}/BaseTools/Source/C/Makefiles/app.makefile - sed -i \ - -e '/^\(CC\|CXX\|AS\|AR\|LD\)/d' \ - -e '/^VFR_CPPFLAGS/a CC = ${CC}\nCXX = ${CXX}\nAS = ${AS}\nAR = ${AR}\nLD = ${LD}' \ - ${S}/BaseTools/Source/C/VfrCompile/GNUmakefile -} -fix_toolchain:append:class-native() { - # This tools_def.template is going to be used by the target ovmf and - # defines which compilers to use. For the GCC toolchain definitions, - # that will be ${HOST_PREFIX}gcc. However, "make" doesn't need that - # prefix. - # - # Injecting ENV(HOST_PREFIX) matches exporting that value as env - # variable in do_compile:class-target. - sed -i \ - -e 's#\(ENV\|DEF\)(GCC.*_PREFIX)#ENV(HOST_PREFIX)#' \ - -e 's#ENV(HOST_PREFIX)make#make#' \ - ${S}/BaseTools/Conf/tools_def.template - sed -i \ - -e '/^\(LFLAGS\|CFLAGS\) +=/d' \ - -e '/^LINKER/a LFLAGS += ${BUILD_LDFLAGS}\nCFLAGS += ${BUILD_CFLAGS}' \ - ${S}/BaseTools/Source/C/Makefiles/app.makefile \ - ${S}/BaseTools/Source/C/VfrCompile/GNUmakefile - # Linking with gold fails: - # internal error in do_layout, at ../../gold/object.cc:1821 - # make: *** [.../OUTPUT/Facs.acpi] Error 1 - # We intentionally hard-code the use of ld.bfd regardless of DISTRO_FEATURES - # to make ovmf-native reusable across distros. - sed -i \ - -e 's#^\(DEFINE GCC.*DLINK.*FLAGS *=\)#\1 -fuse-ld=bfd#' \ - -e 's#-flto#-fno-lto#g' \ - -e 's#-DUSING_LTO##g' \ - ${S}/BaseTools/Conf/tools_def.template -} - -# We disable lto above since the results are not reproducible and make it hard to compare -# binary build aretfacts to debug reproducibility problems. -# Surprisingly, if you disable lto, you see compiler warnings which are fatal. We therefore -# have to hack warnings overrides into GCC_PREFIX_MAP to allow it to build. - -# We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in -# --debug-prefix-map to nasm (we carry a patch to nasm for this). The -# tools definitions are built by ovmf-native so we need to pass this in -# at target build time when we know the right values. -export NASM_PREFIX_MAP = "--debug-prefix-map=${WORKDIR}=/usr/src/debug/ovmf/${EXTENDPE}${PV}-${PR}" -export GCC_PREFIX_MAP = "${DEBUG_PREFIX_MAP} -Wno-stringop-overflow -Wno-maybe-uninitialized" - -GCC_VER="$(${CC} -v 2>&1 | tail -n1 | awk '{print $3}')" - -fixup_target_tools() { - case ${1} in - 4.4.*) - FIXED_GCCVER=GCC44 - ;; - 4.5.*) - FIXED_GCCVER=GCC45 - ;; - 4.6.*) - FIXED_GCCVER=GCC46 - ;; - 4.7.*) - FIXED_GCCVER=GCC47 - ;; - 4.8.*) - FIXED_GCCVER=GCC48 - ;; - 4.9.*) - FIXED_GCCVER=GCC49 - ;; - *) - FIXED_GCCVER=GCC5 - ;; - esac - echo ${FIXED_GCCVER} -} - -do_compile:class-native() { - oe_runmake -C ${S}/BaseTools -} - -do_compile:class-target() { - export LFLAGS="${LDFLAGS}" - PARALLEL_JOBS="${@oe.utils.parallel_make_argument(d, '-n %d')}" - OVMF_ARCH="X64" - if [ "${TARGET_ARCH}" != "x86_64" ] ; then - OVMF_ARCH="IA32" - fi - - # The build for the target uses BaseTools/Conf/tools_def.template - # from ovmf-native to find the compiler, which depends on - # exporting HOST_PREFIX. - export HOST_PREFIX="${HOST_PREFIX}" - - # BaseTools/Conf gets copied to Conf, but only if that does not - # exist yet. To ensure that an updated template gets used during - # incremental builds, we need to remove the copy before we start. - rm -f `ls ${S}/Conf/*.txt | grep -v ReadMe.txt` - - # ${WORKDIR}/ovmf is a well-known location where do_install and - # do_deploy will be able to find the files. - rm -rf ${WORKDIR}/ovmf - mkdir ${WORKDIR}/ovmf - OVMF_DIR_SUFFIX="X64" - if [ "${TARGET_ARCH}" != "x86_64" ] ; then - OVMF_DIR_SUFFIX="Ia32" # Note the different capitalization - fi - FIXED_GCCVER=$(fixup_target_tools ${GCC_VER}) - bbnote FIXED_GCCVER is ${FIXED_GCCVER} - build_dir="${S}/Build/Ovmf$OVMF_DIR_SUFFIX/RELEASE_${FIXED_GCCVER}" - - bbnote "Building without Secure Boot." - rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX - ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${PACKAGECONFIG_CONFARGS} - ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.fd - ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.code.fd - ln ${build_dir}/FV/OVMF_VARS.fd ${WORKDIR}/ovmf/ovmf.vars.fd - ln ${build_dir}/${OVMF_ARCH}/Shell.efi ${WORKDIR}/ovmf/ - - if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then - # Repeat build with the Secure Boot flags. - bbnote "Building with Secure Boot." - rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX - ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${PACKAGECONFIG_CONFARGS} ${OVMF_SECURE_BOOT_FLAGS} - ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.secboot.fd - ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.secboot.code.fd - ln ${build_dir}/${OVMF_ARCH}/EnrollDefaultKeys.efi ${WORKDIR}/ovmf/ - fi -} - -do_install:class-native() { - install -d ${D}/${bindir}/edk2_basetools - cp -r ${S}/BaseTools ${D}/${bindir}/${EDK_TOOLS_DIR} -} - -do_install:class-target() { - # Content for UEFI shell iso. We install the EFI shell as - # bootx64/ia32.efi because then it can be started even when the - # firmware itself does not contain it. - install -d ${D}/efi/boot - install ${WORKDIR}/ovmf/Shell.efi ${D}/efi/boot/boot${@ "ia32" if "${TARGET_ARCH}" != "x86_64" else "x64"}.efi - if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then - install ${WORKDIR}/ovmf/EnrollDefaultKeys.efi ${D} - fi -} - -# This always gets packaged because ovmf-shell-image depends on it. -# This allows testing that recipe in all configurations because it -# can always be part of a world build. -# -# However, EnrollDefaultKeys.efi is only included when Secure Boot is enabled. -PACKAGES =+ "ovmf-shell-efi" -FILES:ovmf-shell-efi = " \ - EnrollDefaultKeys.efi \ - efi/ \ -" - -DEPLOYDEP = "" -DEPLOYDEP:class-target = "qemu-system-native:do_populate_sysroot" -DEPLOYDEP:class-target += " ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'openssl-native:do_populate_sysroot', '', d)}" -do_deploy[depends] += "${DEPLOYDEP}" - -do_deploy() { -} -do_deploy:class-target() { - # For use with "runqemu ovmf". - for i in \ - ovmf \ - ovmf.code \ - ovmf.vars \ - ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'ovmf.secboot ovmf.secboot.code', '', d)} \ - ; do - qemu-img convert -f raw -O qcow2 ${WORKDIR}/ovmf/$i.fd ${DEPLOYDIR}/$i.qcow2 - done - - if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then - # Create a test Platform Key and first Key Exchange Key to use with EnrollDefaultKeys - openssl req -new -x509 -newkey rsa:2048 -keyout ${DEPLOYDIR}/OvmfPkKek1.key \ - -out ${DEPLOYDIR}/OvmfPkKek1.crt -nodes -days 20 -subj "/CN=OVMFSecBootTest" - openssl x509 -in ${DEPLOYDIR}/OvmfPkKek1.crt -out ${DEPLOYDIR}/OvmfPkKek1.pem -outform PEM - fi -} -addtask do_deploy after do_compile before do_build - -BBCLASSEXTEND = "native" -TOOLCHAIN = "gcc" diff --git a/meta-citadel/recipes-sway/sway/files/0001-Added-case-for-libinput-custom-accel-profile.patch b/meta-citadel/recipes-sway/sway/files/0001-Added-case-for-libinput-custom-accel-profile.patch new file mode 100644 index 0000000..7d8891e --- /dev/null +++ b/meta-citadel/recipes-sway/sway/files/0001-Added-case-for-libinput-custom-accel-profile.patch @@ -0,0 +1,23 @@ +From fd457da60c963588a6423f4cf263e861078e8422 Mon Sep 17 00:00:00 2001 +From: Bruce Leidl +Date: Wed, 27 Sep 2023 07:29:28 -0400 +Subject: [PATCH] Added case for libinput custom accel profile + +--- + sway/ipc-json.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/sway/ipc-json.c b/sway/ipc-json.c +index 61613f53..16c4b858 100644 +--- a/sway/ipc-json.c ++++ b/sway/ipc-json.c +@@ -905,6 +905,9 @@ static json_object *describe_libinput_device(struct libinput_device *device) { + case LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE: + accel_profile = "adaptive"; + break; ++ case LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM: ++ accel_profile = "custom"; ++ break; + } + json_object_object_add(object, "accel_profile", + json_object_new_string(accel_profile)); diff --git a/meta-citadel/recipes-sway/sway/sway_1.7.bb b/meta-citadel/recipes-sway/sway/sway_1.7.bb index 55ca72e..7071781 100644 --- a/meta-citadel/recipes-sway/sway/sway_1.7.bb +++ b/meta-citadel/recipes-sway/sway/sway_1.7.bb @@ -35,11 +35,11 @@ DEPENDS += " \ # wl-clipboard \ #" -SRC_URI = " \ - git://github.com/swaywm/sway.git;protocol=https;branch=master \ - file://config \ - file://0001-Reinstate-wayland-0-as-starting-display-socket-for-C.patch \ -" +SRC_URI = "git://github.com/swaywm/sway.git;protocol=https;branch=master \ + file://config \ + file://0001-Reinstate-wayland-0-as-starting-display-socket-for-C.patch \ + file://0001-Added-case-for-libinput-custom-accel-profile.patch \ + " SRCREV = "9d99bb956fea8922f8e0196d67eabbd510c53f1f" PV = "1.7" diff --git a/meta-gnome/recipes-devtools/python/python3-lxml_4.8.0.bb b/meta-gnome/recipes-devtools/python/python3-lxml_4.8.0.bb deleted file mode 100644 index c4d4df3..0000000 --- a/meta-gnome/recipes-devtools/python/python3-lxml_4.8.0.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \ -libxslt libraries. It provides safe and convenient access to these \ -libraries using the ElementTree API. It extends the ElementTree API \ -significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \ -C14N and much more." -HOMEPAGE = "https://lxml.de/" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause & GPL-2.0-only & MIT & PSF-2.0" -LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \ - file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \ - file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \ - file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=fc85684a8dd5fa272c086bceb0d99e10 \ - file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;beginline=2;endline=24;md5=cc86b7b2bbc678e13f58ea403eb9929b \ - file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;beginline=2;endline=7;md5=5b03236d293dc3784205542b409d2f53 \ - " - -DEPENDS += "libxml2 libxslt" - -SRC_URI[sha256sum] = "f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23" - -SRC_URI += "${PYPI_SRC_URI}" -inherit pkgconfig pypi setuptools3 - -# {standard input}: Assembler messages: -# {standard input}:1488805: Error: branch out of range -DEBUG_OPTIMIZATION:remove:mips = " -Og" -DEBUG_OPTIMIZATION:append:mips = " -O" -BUILD_OPTIMIZATION:remove:mips = " -Og" -BUILD_OPTIMIZATION:append:mips = " -O" - -DEBUG_OPTIMIZATION:remove:mipsel = " -Og" -DEBUG_OPTIMIZATION:append:mipsel = " -O" -BUILD_OPTIMIZATION:remove:mipsel = " -Og" -BUILD_OPTIMIZATION:append:mipsel = " -O" - -BBCLASSEXTEND = "native nativesdk" - -RDEPENDS:${PN} += "libxml2 libxslt ${PYTHON_PN}-compression" - -CLEANBROKEN = "1" diff --git a/meta-gnome/recipes-freedesktop/geoclue/geoclue/0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch b/meta-gnome/recipes-freedesktop/geoclue/geoclue/0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch new file mode 100644 index 0000000..18e7185 --- /dev/null +++ b/meta-gnome/recipes-freedesktop/geoclue/geoclue/0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch @@ -0,0 +1,30 @@ +From 6c434bdd31d674f85a82cb83248571813c7a37ff Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Wed, 3 May 2023 18:06:46 +0200 +Subject: [PATCH] libgeoclue: don't try to use g-ir-scanner when introspection + isn't enabled + +* it finds target g-ir-scanner, so gir is found(), but when it tries to call it, it fails: + http://errors.yoctoproject.org/Errors/Details/702778/ + geoclue/2.7.0-r0/recipe-sysroot/usr/bin/g-ir-scanner-wrapper: line 5: g-ir-scanner: command not found + +Signed-off-by: Martin Jansa +--- +Upstream-Status: Pending + + libgeoclue/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgeoclue/meson.build b/libgeoclue/meson.build +index 5f05dad..7ed06a1 100644 +--- a/libgeoclue/meson.build ++++ b/libgeoclue/meson.build +@@ -77,7 +77,7 @@ gir_sources = [ libgeoclue_sources, + libgeoclue_headers, + libgeoclue_public_api_gen_sources[1] ] + +-if gir.found() ++if gir.found() and get_option('introspection') + geo_gir = gnome.generate_gir(libgeoclue, + sources: gir_sources, + namespace: 'Geoclue', diff --git a/meta-gnome/recipes-freedesktop/geoclue/geoclue_2.5.7.bb b/meta-gnome/recipes-freedesktop/geoclue/geoclue_2.7.0.bb similarity index 62% rename from meta-gnome/recipes-freedesktop/geoclue/geoclue_2.5.7.bb rename to meta-gnome/recipes-freedesktop/geoclue/geoclue_2.7.0.bb index 3abb629..822e304 100644 --- a/meta-gnome/recipes-freedesktop/geoclue/geoclue_2.5.7.bb +++ b/meta-gnome/recipes-freedesktop/geoclue/geoclue_2.7.0.bb @@ -8,12 +8,14 @@ SECTION = "console/network" LIC_FILES_CHKSUM = "file://COPYING;md5=bdfdd4986a0853eb84eeba85f9d0c4d6" -DEPENDS = "glib-2.0 dbus json-glib libsoup-2.4 intltool-native" +DEPENDS = "glib-2.0 dbus json-glib libsoup-3.0 intltool-native" -inherit meson pkgconfig gtk-doc gobject-introspection vala +inherit meson pkgconfig gtk-doc gobject-introspection vala useradd -SRCREV = "3bb60dd600a8b247fd6049e7e5b1c73c2c5fc0e8" -SRC_URI = "git://gitlab.freedesktop.org/geoclue/geoclue.git;protocol=https;nobranch=1" +SRCREV = "bbfb6289dedb88cb8155d9f6868787d5432e1f90" +SRC_URI = "git://gitlab.freedesktop.org/geoclue/geoclue.git;protocol=https;branch=master \ + file://0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch \ +" S = "${WORKDIR}/git" @@ -25,7 +27,7 @@ PACKAGECONFIG[3g] = "-D3g-source=true,-D3g-source=false,modemmanager" PACKAGECONFIG[modem-gps] = "-Dmodem-gps-source=true,-Dmodem-gps-source=false,modemmanager" PACKAGECONFIG[cdma] = "-Dcdma-source=true,-Dcdma-source=false,modemmanager" PACKAGECONFIG[nmea] = "-Dnmea-source=true,-Dnmea-source=false,avahi,avahi-daemon" -PACKAGECONFIG[lib] = "-Dlibgeoclue=true,-Dlibgeoclue=false,gobject-introspection" +PACKAGECONFIG[lib] = "-Dlibgeoclue=true,-Dlibgeoclue=false" GTKDOC_MESON_OPTION = "gtk-doc" @@ -34,8 +36,20 @@ EXTRA_OEMESON += " \ -Ddemo-agent=false \ " +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 --shell /bin/nologin polkitd" + +do_install:append() { + if ${@bb.utils.contains('PACKAGECONFIG', 'modem-gps', '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 + fi +} + FILES:${PN} += " \ ${datadir}/dbus-1/system-services \ + ${datadir}/polkit-1/rules.d \ ${libdir} \ ${systemd_unitdir} \ ${prefix}/libexec \ diff --git a/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch new file mode 100644 index 0000000..f8f7ec3 --- /dev/null +++ b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch @@ -0,0 +1,80 @@ +From: Utopia Maintenance Team + +Date: Mon, 30 Apr 2018 17:56:52 +0000 +Subject: Select the current user to authenticate with by default + +Bug: http://bugzilla.gnome.org/show_bug.cgi?id=596188 +Bug-Ubuntu: https://launchpad.net/bugs/435227 +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/polkitgnomeauthenticationdialog.c | 23 ++++++++++++++--------- + 1 file changed, 14 insertions(+), 9 deletions(-) + +diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c +index 743cc96..d307516 100644 +--- a/src/polkitgnomeauthenticationdialog.c ++++ b/src/polkitgnomeauthenticationdialog.c +@@ -138,7 +138,7 @@ user_combobox_changed (GtkComboBox *widget, + static void + create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + { +- int n; ++ int n, i, selected_index = 0; + GtkComboBox *combo; + GtkTreeIter iter; + GtkCellRenderer *renderer; +@@ -162,7 +162,7 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + + + /* For each user */ +- for (n = 0; dialog->priv->users[n] != NULL; n++) ++ for (i = 0, n = 0; dialog->priv->users[n] != NULL; n++) + { + gchar *gecos; + gchar *real_name; +@@ -224,6 +224,14 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + USERNAME_COL, dialog->priv->users[n], + -1); + ++ i++; ++ if (passwd->pw_uid == getuid ()) ++ { ++ selected_index = i; ++ g_free (dialog->priv->selected_user); ++ dialog->priv->selected_user = g_strdup (dialog->priv->users[n]); ++ } ++ + g_free (real_name); + g_object_unref (pixbuf); + } +@@ -252,8 +260,8 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + user_combobox_set_sensitive, + NULL, NULL); + +- /* Initially select the "Select user..." ... */ +- gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); ++ /* Select the default user */ ++ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), selected_index); + + /* Listen when a new user is selected */ + g_signal_connect (GTK_WIDGET (combo), +@@ -719,16 +727,13 @@ polkit_gnome_authentication_dialog_constructed (GObject *object) + gtk_widget_set_tooltip_markup (label, s); + g_free (s); + +- if (have_user_combobox) ++ /* Disable password entry and authenticate until have a user selected */ ++ if (have_user_combobox && gtk_combo_box_get_active (GTK_COMBO_BOX (dialog->priv->user_combobox)) == 0) + { +- /* ... and make the password entry and "Authenticate" button insensitive */ + gtk_widget_set_sensitive (dialog->priv->prompt_label, FALSE); + gtk_widget_set_sensitive (dialog->priv->password_entry, FALSE); + gtk_widget_set_sensitive (dialog->priv->auth_button, FALSE); + } +- else +- { +- } + + gtk_widget_realize (GTK_WIDGET (dialog)); + diff --git a/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch new file mode 100644 index 0000000..011fe6e --- /dev/null +++ b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch @@ -0,0 +1,34 @@ +From: Lars Uebernickel +Date: Fri, 17 Oct 2014 15:35:25 +0200 +Subject: Auth dialog: Make the label wrap at 70 chars + +Because GtkWindow doesn't have a default width anymore. + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=738688 +Bug-Ubuntu: https://launchpad.net/bugs/1382566 +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/polkitgnomeauthenticationdialog.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c +index d307516..efd4185 100644 +--- a/src/polkitgnomeauthenticationdialog.c ++++ b/src/polkitgnomeauthenticationdialog.c +@@ -574,6 +574,7 @@ polkit_gnome_authentication_dialog_constructed (GObject *object) + g_free (s); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); ++ gtk_label_set_max_width_chars (GTK_LABEL (label), 70); + gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0); + + /* secondary message */ +@@ -601,6 +602,7 @@ polkit_gnome_authentication_dialog_constructed (GObject *object) + } + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); ++ gtk_label_set_max_width_chars (GTK_LABEL (label), 70); + gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0); + + /* user combobox */ diff --git a/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch new file mode 100644 index 0000000..a3759c4 --- /dev/null +++ b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch @@ -0,0 +1,138 @@ +From: Marc Deslauriers +Date: Mon, 30 Apr 2018 18:03:22 +0000 +Subject: Get user icon from accountsservice instead of looking in ~/.face + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=669857 +Bug-Ubuntu: https://launchpad.net/bugs/928249 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/polkitgnomeauthenticationdialog.c | 107 ++++++++++++++++++++++++++++++---- + 1 file changed, 97 insertions(+), 10 deletions(-) + +diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c +index efd4185..565da87 100644 +--- a/src/polkitgnomeauthenticationdialog.c ++++ b/src/polkitgnomeauthenticationdialog.c +@@ -135,6 +135,102 @@ user_combobox_changed (GtkComboBox *widget, + } + } + ++static GdkPixbuf * ++get_user_icon (char *username) ++{ ++ GError *error; ++ GDBusConnection *connection; ++ GVariant *find_user_result; ++ GVariant *get_icon_result; ++ GVariant *icon_result_variant; ++ const gchar *user_path; ++ const gchar *icon_filename; ++ GdkPixbuf *pixbuf; ++ ++ error = NULL; ++ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); ++ ++ if (connection == NULL) ++ { ++ g_warning ("Unable to connect to system bus: %s", error->message); ++ g_error_free (error); ++ return NULL; ++ } ++ ++ find_user_result = g_dbus_connection_call_sync (connection, ++ "org.freedesktop.Accounts", ++ "/org/freedesktop/Accounts", ++ "org.freedesktop.Accounts", ++ "FindUserByName", ++ g_variant_new ("(s)", ++ username), ++ G_VARIANT_TYPE ("(o)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ &error); ++ ++ if (find_user_result == NULL) ++ { ++ g_warning ("Accounts couldn't find user: %s", error->message); ++ g_error_free (error); ++ return NULL; ++ } ++ ++ user_path = g_variant_get_string (g_variant_get_child_value (find_user_result, 0), ++ NULL); ++ ++ get_icon_result = g_dbus_connection_call_sync (connection, ++ "org.freedesktop.Accounts", ++ user_path, ++ "org.freedesktop.DBus.Properties", ++ "Get", ++ g_variant_new ("(ss)", ++ "org.freedesktop.Accounts.User", ++ "IconFile"), ++ G_VARIANT_TYPE ("(v)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ &error); ++ ++ g_variant_unref (find_user_result); ++ ++ if (get_icon_result == NULL) ++ { ++ g_warning ("Accounts couldn't find user icon: %s", error->message); ++ g_error_free (error); ++ return NULL; ++ } ++ ++ g_variant_get_child (get_icon_result, 0, "v", &icon_result_variant); ++ icon_filename = g_variant_get_string (icon_result_variant, NULL); ++ ++ if (icon_filename == NULL) ++ { ++ g_warning ("Accounts didn't return a valid filename for user icon"); ++ pixbuf = NULL; ++ } ++ else ++ { ++ /* TODO: we probably shouldn't hard-code the size to 16x16 */ ++ pixbuf = gdk_pixbuf_new_from_file_at_size (icon_filename, ++ 16, ++ 16, ++ &error); ++ if (pixbuf == NULL) ++ { ++ g_warning ("Couldn't open user icon: %s", error->message); ++ g_error_free (error); ++ } ++ } ++ ++ g_variant_unref (icon_result_variant); ++ g_variant_unref (get_icon_result); ++ ++ return pixbuf; ++} ++ + static void + create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + { +@@ -197,16 +293,7 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + g_free (gecos); + + /* Load users face */ +- pixbuf = NULL; +- if (passwd->pw_dir != NULL) +- { +- gchar *path; +- path = g_strdup_printf ("%s/.face", passwd->pw_dir); +- /* TODO: we probably shouldn't hard-code the size to 16x16 */ +- pixbuf = gdk_pixbuf_new_from_file_at_scale (path, 16, 16, TRUE, NULL); +- g_free (path); +- } +- ++ pixbuf = get_user_icon (dialog->priv->users[n]); + /* fall back to avatar-default icon */ + if (pixbuf == NULL) + { diff --git a/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch new file mode 100644 index 0000000..2c9c5bb --- /dev/null +++ b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch @@ -0,0 +1,48 @@ +From: Jeffrey Knockel +Date: Mon, 30 Apr 2018 18:05:20 +0000 +Subject: Use fresh X11 timestamps when displaying authentication dialog + +This circumvents focus-stealing prevention. + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=676076 +Bug-Debian: https://bugs.debian.org/684300 +Bug-Ubuntu: https://launchpad.net/bugs/946171 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/polkitgnomeauthenticator.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/polkitgnomeauthenticator.c b/src/polkitgnomeauthenticator.c +index 23163b4..e57d76e 100644 +--- a/src/polkitgnomeauthenticator.c ++++ b/src/polkitgnomeauthenticator.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -306,7 +307,17 @@ session_request (PolkitAgentSession *session, + } + + gtk_widget_show_all (GTK_WIDGET (authenticator->dialog)); +- gtk_window_present (GTK_WINDOW (authenticator->dialog)); ++ GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (authenticator->dialog)); ++ ++ if (GDK_IS_X11_WINDOW (window)) ++ { ++ gtk_window_present_with_time (GTK_WINDOW (authenticator->dialog), gdk_x11_get_server_time (window)); ++ } ++ else ++ { ++ gtk_window_present (GTK_WINDOW (authenticator->dialog)); ++ } ++ + password = polkit_gnome_authentication_dialog_run_until_response_for_prompt (POLKIT_GNOME_AUTHENTICATION_DIALOG (authenticator->dialog), + modified_request, + echo_on, + diff --git a/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch new file mode 100644 index 0000000..7eee12a --- /dev/null +++ b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch @@ -0,0 +1,29 @@ +From 334abb04ff953dabec63a91094de43e3cf064d7d Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Fri, 24 Feb 2023 17:29:24 +0100 +Subject: [PATCH] configure.ac: disable gnome-tools that are not provided + +Upstream-Status: Inappropriate [OE-specific] +Signed-off-by: Markus Volk +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 24eb724..02fccbd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -33,8 +33,8 @@ LT_INIT + # GNOME + # ***** + +-GNOME_DEBUG_CHECK +-GNOME_COMPILE_WARNINGS([maximum]) ++#GNOME_DEBUG_CHECK ++#GNOME_COMPILE_WARNINGS([maximum]) + + #### gcc warning flags + +-- +2.34.1 + diff --git a/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop new file mode 100644 index 0000000..c45acfa --- /dev/null +++ b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop @@ -0,0 +1,87 @@ +[Desktop Entry] +Name=PolicyKit Authentication Agent +Name[ar]=مدير الاستيثاق PolicyKit +Name[be]=PolicyKit - аґент аўтэнтыфікацыі +Name[bn_IN]=PolicyKit অনুমোদনের এজেন্ট +Name[ca]=Agent d'autenticació del PolicyKit +Name[cs]=Ověřovací agent PolicyKit +Name[da]=Godkendelsesprogrammet PolicyKit +Name[de]=Legitimationsdienst von PolicyKit +Name[el]=Πράκτορας πιστοποίησης PolicyKit +Name[en_GB]=PolicyKit Authentication Agent +Name[es]=Agente de autenticación de PolicyKit +Name[eu]=PolicyKit autentifikatzeko agentea +Name[fi]=PolicytKit-tunnistautumisohjelma +Name[fr]=Agent d'authentification de PolicyKit +Name[gl]=Axente de autenticación PolicyKit +Name[gu]=PolicyKit સત્તાધિકરણ એજન્ટ +Name[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि +Name[hu]=PolicyKit hitelesítési ügynök +Name[it]=Agente di autenticazione per PolicyKit +Name[ja]=PolicyKit 認証エージェント +Name[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ +Name[lt]=PolicyKit tapatybės nustatymo agentas +Name[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ് +Name[mr]=PolicyKit ऑथेंटीकेशन एजेंट +Name[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ +Name[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ +Name[pl]=Agent uwierzytelniania PolicyKit +Name[pt]=Agente de Autenticação PolicyKit +Name[pt_BR]=Agente de autenticação PolicyKit +Name[ro]=Agent de autentificare PolicyKit +Name[sk]=Agent PolicyKit na overovanie totožnosti +Name[sl]=PolicyKit program overjanja +Name[sv]=Autentiseringsagent för PolicyKit +Name[ta]=PolicyKit அங்கீகார முகவர் +Name[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి +Name[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit +Name[uk]=Агент автентифікації PolicyKit +Name[zh_CN]=PolicyKit 认证代理 +Name[zh_HK]=PolicyKit 驗證代理程式 +Name[zh_TW]=PolicyKit 驗證代理程式 +Comment=PolicyKit Authentication Agent +Comment[ar]=مدير الاستيثاق PolicyKit +Comment[be]=PolicyKit - аґент аўтэнтыфікацыі +Comment[bn_IN]=PolicyKit অনুমোদনের এজেন্ট +Comment[ca]=Agent d'autenticació del PolicyKit +Comment[cs]=Ověřovací agent PolicyKit +Comment[da]=Godkendelsesprogrammet PolicyKit +Comment[de]=Legitimationsdienst von PolicyKit +Comment[el]=Πράκτορας πιστοποίησης PolicyKit +Comment[en_GB]=PolicyKit Authentication Agent +Comment[es]=Agente de autenticación de PolicyKit +Comment[eu]=PolicyKit autentifikatzeko agentea +Comment[fi]=PolicytKit-tunnistautumisohjelma +Comment[fr]=Agent d'authentification de PolicyKit +Comment[gl]=Axente de autenticación PolicyKit +Comment[gu]=PolicyKit સત્તાધિકરણ એજન્ટ +Comment[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि +Comment[hu]=PolicyKit hitelesítési ügynök +Comment[it]=Agente di autenticazione per PolicyKit +Comment[ja]=PolicyKit 認証エージェント +Comment[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ +Comment[lt]=PolicyKit tapatybės nustatymo agentas +Comment[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ് +Comment[mr]=PolicyKit ऑथेंटीकेशन एजेंट +Comment[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ +Comment[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ +Comment[pl]=Agent uwierzytelniania PolicyKit +Comment[pt]=Agente de Autenticação PolicyKit +Comment[pt_BR]=Agente de autenticação PolicyKit +Comment[ro]=Agent de autentificare PolicyKit +Comment[sk]=Agent PolicyKit na overovanie totožnosti +Comment[sl]=PolicyKit program overjanja +Comment[sv]=Autentiseringsagent för PolicyKit +Comment[ta]=PolicyKit அங்கீகார முகவர் +Comment[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి +Comment[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit +Comment[uk]=Агент автентифікації PolicyKit +Comment[zh_CN]=PolicyKit 认证代理 +Comment[zh_HK]=PolicyKit 驗證代理程式 +Comment[zh_TW]=PolicyKit 驗證代理程式 +Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +Terminal=false +Type=Application +Categories= +NoDisplay=true +OnlyShowIn=GNOME; diff --git a/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome_0.105.bb b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome_0.105.bb new file mode 100644 index 0000000..e0e4a59 --- /dev/null +++ b/meta-gnome/recipes-freedesktop/polkit-gnome/polkit-gnome_0.105.bb @@ -0,0 +1,29 @@ +SUMMARY = "PolicyKit-gnome provides an Authentication Agent for PolicyKit" +HOMEPAGE = "https://gitlab.gnome.org/Archive/policykit-gnome" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=74579fab173e4c5e12aac0cd83ee98ec" + +DEPENDS = "glib-2.0-native glib-2.0 gtk+3 polkit intltool-native" + +inherit autotools pkgconfig features_check + +REQUIRED_DISTRO_FEATURES = "polkit" + +SRC_URI = " \ + git://gitlab.gnome.org/Archive/policykit-gnome.git;protocol=https;branch=master \ + file://0001-Select-the-current-user-to-authenticate-with-by-defa.patch \ + file://0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch \ + file://0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch \ + file://0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch \ + file://0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch \ + file://polkit-gnome-authentication-agent-1.desktop \ +" +SRCREV = "a0763a246a81188f60b0f9810143e49224dc752f" +S = "${WORKDIR}/git" + + +do_install:append() { + install -d ${D}${datadir}/applications + install -m644 ${WORKDIR}/polkit-gnome-authentication-agent-1.desktop \ + ${D}${datadir}/applications +} diff --git a/meta-gnome/recipes-freedesktop/polkit/polkit-gnome_0.105.bb b/meta-gnome/recipes-freedesktop/polkit/polkit-gnome_0.105.bb deleted file mode 100644 index 509bfa5..0000000 --- a/meta-gnome/recipes-freedesktop/polkit/polkit-gnome_0.105.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "GNOME Authentication Agent for PolicyKit" -DESCRIPTION = "PolicyKit-gnome provides an Authentication Agent for PolicyKit that integrates well with the GNOME desktop environment" -HOMEPAGE = "http://www.packagekit.org/" -BUGTRACKER = "http://bugzilla.gnome.org/" -DEPENDS = "polkit dbus-glib gconf gtk+3 glib-2.0-native intltool-native gnome-common" -LICENSE = "LGPL-2.0-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=74579fab173e4c5e12aac0cd83ee98ec \ - file://src/main.c;beginline=1;endline=20;md5=aba145d1802f2329ba561e3e48ecb795" - -SRC_URI = "https://download.gnome.org/sources/polkit-gnome/${PV}/polkit-gnome-${PV}.tar.xz \ - file://gtk-doc-check.patch \ -" -SRC_URI[md5sum] = "50ecad37c8342fb4a52f590db7530621" -SRC_URI[sha256sum] = "1784494963b8bf9a00eedc6cd3a2868fb123b8a5e516e66c5eda48df17ab9369" - -EXTRA_OECONF = "\ - --disable-static \ -" - -inherit autotools gtk-doc pkgconfig - -FILES:${PN} += " ${datadir}/dbus-1 \ - ${datadir}/PolicyKit \ -" diff --git a/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb b/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb index 2b1ecad..42659d0 100644 --- a/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb +++ b/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb @@ -11,9 +11,9 @@ inherit gnomebase gobject-introspection gettext gtk-doc upstream-version-is-even DEPENDS = " \ json-glib \ - libsoup-2.4 \ + libsoup-3.0 \ " SRC_URI[archive.sha256sum] = "2d9a6826d158470449a173871221596da0f83ebdcff98b90c7049089056a37aa" -EXTRA_OEMESON = "-Denable-installed-tests=false" +EXTRA_OEMESON = "-Denable-installed-tests=false -Dsoup2=false" 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 0c45e60..7fc849c 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 fa47185d9c8150a0dcb0ea12b92fcf139edbef35 Mon Sep 17 00:00:00 2001 +From 11a6b636ed27eb695b15a1ad6c00f1d1aa02735a 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 @@ -9,18 +9,19 @@ Content-Transfer-Encoding: 8bit * Do not build/run mozjs-linked program * Do not try to run test applications -Upstream-Status: Submitted[https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690] +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 136e812..f5b91e0 100644 +index ba81cd1..0e0b28e 100644 --- a/meson.build +++ b/meson.build -@@ -252,6 +252,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with +@@ -255,6 +255,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with --disable-debug.''') endif @@ -28,7 +29,7 @@ index 136e812..f5b91e0 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. -@@ -282,6 +283,7 @@ elif minimal_program.returncode() != 0 +@@ -285,6 +286,7 @@ elif minimal_program.returncode() != 0 failed to execute. Most likely you should build it with a different configuration.''' + recommended_configuration) endif @@ -36,7 +37,7 @@ index 136e812..f5b91e0 100644 have_printf_alternative_int = cc.compiles(''' #include -@@ -682,7 +684,7 @@ subdir('installed-tests') +@@ -683,7 +685,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 6e7b550..fc7b6ed 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,26 +1,32 @@ -From 2b8aa1ea4a4d1836164c934b1ab2556a32cb5af7 Mon Sep 17 00:00:00 2001 +From d46af224b10d9ff9f1e88f9381fd046ad554e373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= 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 -Upstream-Status: Submitted[https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690] +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 f5b91e0..3110530 100644 +index 0e0b28e..321b243 100644 --- a/meson.build +++ b/meson.build -@@ -680,7 +680,9 @@ if not get_option('skip_gtk_tests') - have_gtk4 = dependency('gtk4', required: false).found() - endif +@@ -681,7 +681,9 @@ endif + + ### Tests and test setups ###################################################### -subdir('installed-tests') +if get_option('installed_tests') diff --git a/meta-gnome/recipes-gnome/gjs/gjs_1.73.2.bb b/meta-gnome/recipes-gnome/gjs/gjs_1.77.90.bb similarity index 90% rename from meta-gnome/recipes-gnome/gjs/gjs_1.73.2.bb rename to meta-gnome/recipes-gnome/gjs/gjs_1.77.90.bb index ded9140..7def880 100644 --- a/meta-gnome/recipes-gnome/gjs/gjs_1.73.2.bb +++ b/meta-gnome/recipes-gnome/gjs/gjs_1.77.90.bb @@ -4,11 +4,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8dcea832f6acf45d856abfeb2d51ec48" GNOMEBASEBUILDCLASS = "meson" -DEPENDS = "mozjs-102 cairo" +DEPENDS = "mozjs-115 cairo" inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even pkgconfig -SRC_URI[archive.sha256sum] = "cf2b84b174a049c911a69ec619f4c5ca6b96d609be5200ca3db5131c98beda75" +SRC_URI[archive.sha256sum] = "70db967ae98bde69b38475ef60bb9a3302990fa615baf46820194b302a29dbf8" + 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_42.0.bb b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_45.0.bb similarity index 76% rename from meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_42.0.bb rename to meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_45.0.bb index d700c1b..cfccf9b 100644 --- a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_42.0.bb +++ b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_45.0.bb @@ -8,7 +8,8 @@ GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gettext allarch -SRC_URI[archive.sha256sum] = "4c7fe1a09f459c5f77189a5982524fce05d888944955d679910f234606c1295d" +SRC_URI[archive.sha256sum] = "cee0e688fbae5ef7a75f335ada2d10779e08ebca9445f1586de32c5a9b6dee2d" + FILES:${PN} += " \ ${datadir}/backgrounds \ 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 768ba54..d05533d 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 @@ -19,7 +19,7 @@ Signed-off-by: Andreas Müller 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/meson_options.txt b/meson_options.txt -index dbca723..af0f871 100644 +index 8ee7b6e..7e6adc6 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,3 +1,4 @@ @@ -28,18 +28,28 @@ index dbca723..af0f871 100644 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 3634c47..459ccfe 100644 +index 9bf5435..96f2ac0 100644 --- a/panels/background/meson.build +++ b/panels/background/meson.build -@@ -25,7 +25,7 @@ common_sources = [] +@@ -19,7 +19,7 @@ common_sources = [] enums = 'gdesktop-enums-types' enums_header = files( -- gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h', +- 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' ) --- -2.34.1 - +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( + + 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' + ) + diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-options-for-Citadel-and-disabling-GOA-CUPS.patch b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-options-for-Citadel-and-disabling-GOA-CUPS.patch deleted file mode 100644 index bbde11d..0000000 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-options-for-Citadel-and-disabling-GOA-CUPS.patch +++ /dev/null @@ -1,296 +0,0 @@ -From 2f5368dd4eef27ee3afaed761932601393e4875e Mon Sep 17 00:00:00 2001 -From: Bruce Leidl -Date: Thu, 22 Sep 2022 20:31:50 -0400 -Subject: [PATCH] Add options for Citadel and disabling GOA/CUPS - ---- - meson.build | 14 ++++++++++++++ - meson_options.txt | 5 +++++ - panels/meson.build | 23 ++++++++++++++++------- - shell/cc-panel-list.c | 14 ++++++++++++++ - shell/cc-panel-loader.c | 28 ++++++++++++++++++++++++++++ - tests/meson.build | 2 +- - 6 files changed, 78 insertions(+), 8 deletions(-) - -diff --git a/meson.build b/meson.build -index b7b595e..9c86afb 100644 ---- a/meson.build -+++ b/meson.build -@@ -110,6 +110,15 @@ libgvc = subproject( - ) - libgvc_dep = libgvc.get_variable('libgvc_dep') - -+enable_goa = get_option('online_accounts') -+enable_cups = get_option('cups') -+enable_user_accounts = get_option('user_accounts') -+enable_citadel = get_option('citadel') -+config_h.set('WITH_GOA', enable_goa, description: 'Define to enable support for Gnome Online Accounts') -+config_h.set('WITH_CUPS', enable_goa, description: 'Define to enable support for CUPS') -+config_h.set('WITH_USER_ACCOUNTS', enable_user_accounts, description: 'Define to enable user accounts panel') -+config_h.set('CITADEL', enable_citadel, description: 'Define to enable the removal of components unneeded in Citadel') -+ - goa_req_version = '>= 3.25.3' - pulse_req_version = '>= 2.0' - -@@ -129,7 +138,9 @@ 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') -+if enable_goa - goa_dep = dependency('goa-1.0', version: goa_req_version) -+endif - gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 42.alpha') - libxml_dep = dependency('libxml-2.0') - pulse_dep = dependency('libpulse', version: pulse_req_version) -@@ -164,6 +175,8 @@ foreach polkit_file: polkit_files - endforeach - - # Check for CUPS 1.4 or newer -+ -+if enable_cups - cups_dep = dependency('cups', version : '>= 1.4', required: false) - assert(cups_dep.found(), 'CUPS 1.4 or newer not found') - -@@ -186,6 +199,7 @@ endforeach - config_h.set10('HAVE_CUPS_HTTPCONNECT2', - cc.has_function('httpConnect2', dependencies: cups_dep), - description: 'Define if httpConnect2() is available in CUPS') -+endif - - # IBus support - enable_ibus = get_option('ibus') -diff --git a/meson_options.txt b/meson_options.txt -index 0a6f12b..4435bd3 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -10,3 +10,8 @@ option('profile', type: 'combo', choices: ['default','development'], value: 'def - option('malcontent', type: 'boolean', value: false, description: 'build with malcontent support') - option('distributor_logo', type: 'string', description: 'absolute path to distributor logo for the About panel') - option('dark_mode_distributor_logo', type: 'string', description: 'absolute path to distributor logo dark mode variant') -+option('staging_dir', type: 'string', description: 'set staging directory for cross-compile') -+option('online_accounts', type: 'boolean', value: false, description: 'build with support for gnome-online-accounts') -+option('cups', type: 'boolean', value: false, description: 'build with support for CUPS') -+option('user_accounts', type: 'boolean', value: false, description: 'build with support for user accounts panel') -+option('citadel', type: 'boolean', value: true, description: 'build with Citadel support, which removes unneeded components') -diff --git a/panels/meson.build b/panels/meson.build -index cb732f2..26f6465 100644 ---- a/panels/meson.build -+++ b/panels/meson.build -@@ -1,12 +1,10 @@ - subdir('common') - - panels = [ -- 'applications', - 'background', - 'camera', - 'color', - 'datetime', -- 'default-apps', - 'diagnostics', - 'display', - 'firmware-security', -@@ -17,18 +15,13 @@ panels = [ - 'mouse', - 'multitasking', - 'notifications', -- 'online-accounts', - 'power', -- 'printers', - 'region', -- 'removable-media', - 'screen', - 'search', -- 'sharing', - 'sound', - 'universal-access', - 'usage', -- 'user-accounts', - 'wwan', - ] - -@@ -44,6 +37,22 @@ if host_is_linux_not_s390 - ] - endif - -+if enable_goa -+ panels += ['online-accounts'] -+endif -+ -+if enable_cups -+ panels += ['printers'] -+endif -+ -+if enable_user_accounts -+ panels += ['user-accounts'] -+endif -+ -+if not enable_citadel -+ panel_names += ['applications', 'default-apps', 'removable-media', 'sharing'] -+endif -+ - panels_list = [] - panels_libs = [] - foreach cappletname: panels -diff --git a/shell/cc-panel-list.c b/shell/cc-panel-list.c -index 185b16d..a893018 100644 ---- a/shell/cc-panel-list.c -+++ b/shell/cc-panel-list.c -@@ -395,10 +395,16 @@ static const gchar * const panel_order[] = { - "notifications", - "search", - "multitasking", -+#ifndef CITADEL - "applications", -+#endif - "privacy", -+#ifndef WITH_GOA - "online-accounts", -+#endif -+#ifndef CITADEL - "sharing", -+#endif - - /* Privacy page */ - "location", -@@ -416,16 +422,24 @@ static const gchar * const panel_order[] = { - "display", - "mouse", - "keyboard", -+#ifndef WITH_CUPS - "printers", -+#endif -+#ifndef CITADEL - "removable-media", -+#endif - "wacom", - "color", - - /* Details page */ - "region", - "universal-access", -+#ifndef WITH_USER_ACCOUNTS - "user-accounts", -+#endif -+#ifndef CITADEL - "default-apps", -+#endif - "reset-settings", - "datetime", - "info-overview", -diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c -index 17f9601..db30bac 100644 ---- a/shell/cc-panel-loader.c -+++ b/shell/cc-panel-loader.c -@@ -31,14 +31,18 @@ - #ifndef CC_PANEL_LOADER_NO_GTYPES - - /* Extension points */ -+#ifndef CITADEL - extern GType cc_applications_panel_get_type (void); -+#endif - 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); -+#ifndef CITADEL - extern GType cc_default_apps_panel_get_type (void); -+#endif - 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,19 +53,29 @@ 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); -+#ifdef WITH_GOA - extern GType cc_online_accounts_panel_get_type (void); -+#endif - extern GType cc_power_panel_get_type (void); -+#ifdef WITH_CUPS - extern GType cc_printers_panel_get_type (void); -+#endif - extern GType cc_region_panel_get_type (void); -+#ifndef CITADEL - extern GType cc_removable_media_panel_get_type (void); -+#endif - extern GType cc_search_panel_get_type (void); -+#ifndef CITADEL - extern GType cc_sharing_panel_get_type (void); -+#endif - extern GType cc_sound_panel_get_type (void); - #ifdef BUILD_THUNDERBOLT - extern GType cc_bolt_panel_get_type (void); - #endif /* BUILD_THUNDERBOLT */ - extern GType cc_ua_panel_get_type (void); -+#ifdef WITH_USER_ACCOUNTS - extern GType cc_user_panel_get_type (void); -+#endif - #ifdef BUILD_WACOM - extern GType cc_wacom_panel_get_type (void); - #endif /* BUILD_WACOM */ -@@ -99,7 +113,9 @@ extern void cc_firmware_security_panel_static_init_func (void); - - static CcPanelLoaderVtable default_panels[] = - { -+#ifndef CITADEL - PANEL_TYPE("applications", cc_applications_panel_get_type, NULL), -+#endif - PANEL_TYPE("background", cc_background_panel_get_type, NULL), - #ifdef BUILD_BLUETOOTH - PANEL_TYPE("bluetooth", cc_bluetooth_panel_get_type, NULL), -@@ -107,7 +123,9 @@ static CcPanelLoaderVtable default_panels[] = - PANEL_TYPE("camera", cc_camera_panel_get_type, NULL), - PANEL_TYPE("color", cc_color_panel_get_type, NULL), - PANEL_TYPE("datetime", cc_date_time_panel_get_type, NULL), -+#ifndef CITADEL - PANEL_TYPE("default-apps", cc_default_apps_panel_get_type, NULL), -+#endif - PANEL_TYPE("diagnostics", cc_diagnostics_panel_get_type, cc_diagnostics_panel_static_init_func), - PANEL_TYPE("display", cc_display_panel_get_type, NULL), - PANEL_TYPE("info-overview", cc_info_overview_panel_get_type, NULL), -@@ -122,21 +140,31 @@ 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), -+#ifdef WITH_GOA - PANEL_TYPE("online-accounts", cc_online_accounts_panel_get_type, NULL), -+#endif - PANEL_TYPE("power", cc_power_panel_get_type, NULL), -+#ifdef WITH_CUPS - PANEL_TYPE("printers", cc_printers_panel_get_type, NULL), -+#endif - PANEL_TYPE("region", cc_region_panel_get_type, NULL), -+#ifndef CITADEL - PANEL_TYPE("removable-media", cc_removable_media_panel_get_type, NULL), -+#endif - PANEL_TYPE("screen", cc_screen_panel_get_type, NULL), - PANEL_TYPE("search", cc_search_panel_get_type, NULL), -+#ifndef CITADEL - PANEL_TYPE("sharing", cc_sharing_panel_get_type, NULL), -+#endif - PANEL_TYPE("sound", cc_sound_panel_get_type, NULL), - #ifdef BUILD_THUNDERBOLT - PANEL_TYPE("thunderbolt", cc_bolt_panel_get_type, NULL), - #endif - PANEL_TYPE("universal-access", cc_ua_panel_get_type, NULL), - PANEL_TYPE("usage", cc_usage_panel_get_type, NULL), -+#ifdef WITH_USER_ACCOUNTS - PANEL_TYPE("user-accounts", cc_user_panel_get_type, NULL), -+#endif - #ifdef BUILD_WACOM - PANEL_TYPE("wacom", cc_wacom_panel_get_type, cc_wacom_panel_static_init_func), - #endif -diff --git a/tests/meson.build b/tests/meson.build -index 69667ac..0910162 100644 ---- a/tests/meson.build -+++ b/tests/meson.build -@@ -6,6 +6,6 @@ endif - - subdir('interactive-panels') - --subdir('printers') -+#subdir('printers') - subdir('info') - subdir('keyboard') diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Don-t-update-icon-cache.patch b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0002-Don-t-update-icon-cache.patch similarity index 89% rename from meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Don-t-update-icon-cache.patch rename to meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0002-Don-t-update-icon-cache.patch index da8a53b..77c9673 100644 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Don-t-update-icon-cache.patch +++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0002-Don-t-update-icon-cache.patch @@ -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 9c86afb..138b10a 100644 +index 6b31d76..11d1b9e 100644 --- a/meson.build +++ b/meson.build -@@ -311,7 +311,7 @@ endif +@@ -339,7 +339,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 new file mode 100644 index 0000000..54d8350 --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0003-Remove-panels-for-citadel.patch @@ -0,0 +1,196 @@ +From 2f5368dd4eef27ee3afaed761932601393e4875e 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 + +--- + +diff --git a/meson.build b/meson.build +index 6b31d76..d997ed2 100644 +--- a/meson.build ++++ b/meson.build +@@ -172,7 +172,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') + libxml_dep = dependency('libxml-2.0') + pulse_dep = dependency('libpulse', version: pulse_req_version) +@@ -206,30 +205,6 @@ foreach polkit_file: polkit_files + assert(r.returncode() == 0, 'ITS support missing from polkit, please upgrade or contact your distribution') + endforeach + +-# Check for CUPS 1.4 or newer +-cups_dep = dependency('cups', version : '>= 1.4', required: false) +-assert(cups_dep.found(), 'CUPS 1.4 or newer not found') +- +-# https://bugzilla.gnome.org/show_bug.cgi?id=696766 +-cups_cflags = [] +-if cups_dep.version().version_compare('>= 1.6') +- cups_cflags += '-D_PPD_DEPRECATED=' +-endif +- +-# cups headers +-check_headers = [ +- ['HAVE_CUPS_CUPS_H', 'cups/cups.h'], +- ['HAVE_CUPS_PPD_H', 'cups/ppd.h'] +-] +- +-foreach header: check_headers +- assert(cc.has_header(header[1], args: cups_cflags), 'CUPS headers not found: ' + header[1]) +-endforeach +- +-config_h.set10('HAVE_CUPS_HTTPCONNECT2', +- cc.has_function('httpConnect2', dependencies: cups_dep), +- description: 'Define if httpConnect2() is available in CUPS') +- + # IBus support + enable_ibus = get_option('ibus') + if enable_ibus +diff --git a/panels/meson.build b/panels/meson.build +index 502fa3b..d8b2e25 100644 +--- a/panels/meson.build ++++ b/panels/meson.build +@@ -1,28 +1,21 @@ + subdir('common') + + panels = [ +- 'applications', + 'background', + 'color', + 'datetime', +- 'default-apps', + 'display', + 'info-overview', + 'keyboard', + 'mouse', + 'multitasking', + 'notifications', +- 'online-accounts', + 'power', +- 'printers', + 'privacy', + 'region', +- 'removable-media', + 'search', +- 'sharing', + 'sound', + 'universal-access', +- 'user-accounts', + 'wwan', + ] + +diff --git a/shell/cc-panel-list.c b/shell/cc-panel-list.c +index a39c880..9f95193 100644 +--- a/shell/cc-panel-list.c ++++ b/shell/cc-panel-list.c +@@ -365,10 +365,7 @@ static const gchar * const panel_order[] = { + "notifications", + "search", + "multitasking", +- "applications", + "privacy", +- "online-accounts", +- "sharing", + + /* Devices page */ + "sound", +@@ -376,16 +373,12 @@ static const gchar * const panel_order[] = { + "display", + "mouse", + "keyboard", +- "printers", +- "removable-media", + "wacom", + "color", + + /* Details page */ + "region", + "universal-access", +- "user-accounts", +- "default-apps", + "reset-settings", + "datetime", + "info-overview", +diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c +index 3b33f4e..6eff958 100644 +--- a/shell/cc-panel-loader.c ++++ b/shell/cc-panel-loader.c +@@ -31,14 +31,12 @@ + #ifndef CC_PANEL_LOADER_NO_GTYPES + + /* Extension points */ +-extern GType cc_applications_panel_get_type (void); + 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); + extern GType cc_wifi_panel_get_type (void); + #endif /* BUILD_NETWORK */ + extern GType cc_notifications_panel_get_type (void); +-extern GType cc_online_accounts_panel_get_type (void); + 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_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); + + static CcPanelLoaderVtable default_panels[] = + { +- PANEL_TYPE("applications", cc_applications_panel_get_type, NULL), + 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[] = + PANEL_TYPE("wifi", cc_wifi_panel_get_type, cc_wifi_panel_static_init_func), + #endif + PANEL_TYPE("notifications", cc_notifications_panel_get_type, NULL), +- PANEL_TYPE("online-accounts", cc_online_accounts_panel_get_type, NULL), + 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("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 +diff --git a/tests/meson.build b/tests/meson.build +index 37334b7..d942799 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -9,6 +9,4 @@ 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_43.0.bb b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_43.0.bb deleted file mode 100644 index 4433711..0000000 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_43.0.bb +++ /dev/null @@ -1,93 +0,0 @@ -SUMMARY = "GNOME Settings" -DESCRIPTION = "GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop" -LICENSE = "GPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnomebase gtk-icon-cache gsettings gettext vala upstream-version-is-even bash-completion features_check - -DEPENDS = " \ - gdk-pixbuf-native \ - colord-gtk \ - udisks2 \ - upower \ - polkit \ - pulseaudio \ - accountsservice \ - gsettings-desktop-schemas \ - gnome-settings-daemon \ - gnome-desktop \ - modemmanager \ - networkmanager \ - network-manager-applet \ - gnome-bluetooth \ - libnma \ - libgtop \ - libgudev \ - gsound \ - libpwquality \ - ibus \ - libadwaita \ -" - -REQUIRED_DISTRO_FEATURES += " pulseaudio systemd x11" - -SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch" -SRC_URI += " file://0001-Add-options-for-Citadel-and-disabling-GOA-CUPS.patch" -SRC_URI += " file://0001-Don-t-update-icon-cache.patch" -SRC_URI[archive.sha256sum] = "988c933592cbdc4e7f0dba9a93262e617b739e25927aa16e177960c754e31c48" - - -# -# Extra options have been added to meson_options.txt to make some components of the control -# center optional. One reason is that these components drag in heavy dependencies, and some -# of these dependencies have not been packaged and tested yet. -# -# Gnome Online Accounts support -# -# EXTRA_OEMESON += "-Donline_accounts=true" -# DEPENDS += "grilo gnome-online-accounts webkitgtk rest" -# -# Printer Panel -# -# EXTRA_OEMESON += "-Dcups=true" -# DEPENDS += "cups samba" (only smbclient needed from samba) -# -# User Accounts Panel -# -# EXTRA_OEMESON += "-Duser_accounts=true" -# DEPENDS += "accountsservice krb5" -# -# Citadel -# -# This option disables some things in gnome-control-center such as certain -# panels that are not used in Citadel, defaults to true in meson_options. -# To re-enable these things, set the option to false: -# -# EXTRA_OEMESON += "-Dcitadel=false" -# - -#SRC_URI += " file://0001-Add-options-for-Citadel-and-disabling-GOA-CUPS.patch" - -EXTRA_OEMESON = " \ - -Doe_sysroot=${STAGING_DIR_HOST} \ -" - -do_install:append() { - # If polkit is setup fixup permissions and ownership - if [ -d ${D}${datadir}/polkit-1/rules.d ]; then - chmod 700 ${D}${datadir}/polkit-1/rules.d - chown polkitd:root ${D}${datadir}/polkit-1/rules.d - fi -} -FILES:${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/gnome-shell \ - ${datadir}/metainfo \ -" - -FILES:${PN}-dev += "${datadir}/gettext" - -RDEPENDS:${PN} += "gsettings-desktop-schemas" - 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_45.0.bb new file mode 100644 index 0000000..7de4f00 --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_45.0.bb @@ -0,0 +1,77 @@ +SUMMARY = "GNOME Settings" +DESCRIPTION = "GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +GNOMEBASEBUILDCLASS = "meson" +GTKIC_VERSION = "4" +export XDG_DATA_DIRS = "${STAGING_DATADIR}:${STAGING_LIBDIR}" + +DEPENDS = " \ + accountsservice \ + colord-gtk \ + gcr3 \ + gdk-pixbuf \ + glib-2.0 \ + gnome-bluetooth \ + gnome-desktop \ + gnome-settings-daemon \ + gsettings-desktop-schemas \ + gstreamer1.0-plugins-base \ + gtk4 \ + libadwaita \ + libepoxy \ + libgtop \ + libgudev \ + libnma \ + libpwquality \ + libxml2 \ + modemmanager \ + polkit \ + pulseaudio \ + tecla \ + udisks2 \ + upower \ +" +RDEPENDS:${PN} = "gstreamer1.0-plugins-base gstreamer1.0-plugins-good" + +inherit gtk-icon-cache pkgconfig gnomebase gsettings gettext upstream-version-is-even bash-completion features_check useradd + +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" + + +PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}" +PACKAGECONFIG[cups] = ",,cups,cups" +PACKAGECONFIG[ibus] = "-Dibus=true, -Dibus=false, ibus" +PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false, wayland" + +EXTRA_OEMESON = " \ + -Doe_sysroot=${STAGING_DIR_HOST} \ +" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd" + +do_install:append() { + if [ -d ${D}${datadir}/polkit-1/rules.d ]; then + chmod 700 ${D}${datadir}/polkit-1/rules.d + chown polkitd:root ${D}${datadir}/polkit-1/rules.d + fi +} + +FILES:${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/gnome-shell \ + ${datadir}/metainfo \ +" + +FILES:${PN}-dev += "${datadir}/gettext" + +RDEPENDS:${PN} += "gsettings-desktop-schemas" diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch new file mode 100644 index 0000000..65e06da --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch @@ -0,0 +1,29 @@ +From 6937685426aff8059b68b2941a0fe549eca21ce5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Mar 2023 23:04:56 -0800 +Subject: [PATCH] meson: Add riscv32 to seccomp unsupported list + +rv32 needs to upstream the libseccomp support + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 6a888b8..a87c419 100644 +--- a/meson.build ++++ b/meson.build +@@ -65,7 +65,7 @@ udev_dep = dependency('libudev', required: get_option('udev')) + host_os = host_machine.system() + host_cpu = host_machine.cpu() + supported_os = ['linux'] +-unsupported_cpus = ['alpha', 'ia64', 'm68k', 'sh4', 'sparc', 'sparc64'] ++unsupported_cpus = ['alpha', 'ia64', 'm68k', 'riscv32', 'sh4', 'sparc', 'sparc64'] + if supported_os.contains(host_os) and not unsupported_cpus.contains(host_cpu) + seccomp_dep = dependency('libseccomp') + else +-- +2.39.2 + diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch deleted file mode 100644 index 8ae1d82..0000000 --- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch +++ /dev/null @@ -1,40 +0,0 @@ -From de0d33b068a5d8e61cc0c82d88d15b9a8aa97977 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Sat, 6 Apr 2019 18:07:17 +0200 -Subject: [PATCH] meson.build: Disable libseccomp for all archs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It does not seem mandatory and can cause unsatisfied dependency [1]. - -[1] https://errors.yoctoproject.org/Errors/Details/235565/ - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - meson.build | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/meson.build b/meson.build -index 1dc8a73..87d72fe 100644 ---- a/meson.build -+++ b/meson.build -@@ -65,12 +65,7 @@ udev_dep = dependency('libudev', required: get_option('udev')) - host_os = host_machine.system() - host_cpu = host_machine.cpu() - supported_os = ['linux'] --unsupported_cpus = ['alpha', 'ia64', 'm68k', 'sh4', 'sparc', 'sparc64'] --if supported_os.contains(host_os) and not unsupported_cpus.contains(host_cpu) -- seccomp_dep = dependency('libseccomp') --else -- seccomp_dep = dependency('', required: false) --endif -+seccomp_dep = dependency('', required: false) - - fontconfig_cache_path = fontconfig_dep.get_variable(pkgconfig: 'cachedir') - xkb_base = xkb_config_dep.get_variable(pkgconfig: 'xkb_base') --- -2.34.1 - diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_43.rc.bb b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb similarity index 65% rename from meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_43.rc.bb rename to meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb index 303522c..03411c8 100644 --- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_43.rc.bb +++ b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb @@ -10,29 +10,31 @@ GNOMEBASEBUILDCLASS = "meson" inherit gnomebase itstool pkgconfig upstream-version-is-even gobject-introspection features_check gtk-doc -REQUIRED_DISTRO_FEATURES = "x11" -# gobject-introspection is mandatory and cannot be configured -REQUIRED_DISTRO_FEATURES += "gobject-introspection-data" +REQUIRED_DISTRO_FEATURES = "x11 opengl" GIR_MESON_OPTION = "" -SRC_URI[archive.sha256sum] = "2a203d76e04f0ebba3dd17bf33474ac19fc4768b6e84fc9177132ed4ceca6ced" -SRC_URI += " \ - file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \ - file://0001-meson.build-Disable-libseccomp-for-all-archs.patch \ -" +SRC_URI += "file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \ + file://0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch" +SRC_URI[archive.sha256sum] = "42c773745d84ba14bc1cf1c4c6f4606148803a5cd337941c63964795f3c59d42" DEPENDS += " \ + fontconfig \ + gdk-pixbuf \ + glib-2.0 \ gsettings-desktop-schemas \ - virtual/libx11 \ gtk+3 \ gtk4 \ - startup-notification \ - xkeyboard-config \ iso-codes \ - udev \ + xext \ + libseccomp \ + libxkbcommon \ + xkeyboard-config \ + xrandr \ " +DEPENDS:remove:riscv32 = "libseccomp" + GTKDOC_MESON_OPTION = "gtk_doc" EXTRA_OEMESON = "-Ddesktop_docs=false" diff --git a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_43.0.bb b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb similarity index 82% rename from meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_43.0.bb rename to meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb index be8633f..3909cf7 100644 --- a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_43.0.bb +++ b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb @@ -26,12 +26,13 @@ DEPENDS = " \ REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data" GIR_MESON_OPTION = "" -SRC_URI[archive.sha256sum] = "3513bb24fc6f8181667223a64a067534fdccf3bf66326a9403d38b0f0d6013d0" -SRC_URI += "file://0001-disable-power-tests-and-sharing.patch" +SRC_URI[archive.sha256sum] = "bb4dc46950e2a90f38f23225848856d2a7b1b718c89d0285ce197b7016bb1dc8" + PACKAGECONFIG ??= " \ nm \ alsa gudev \ + smartcard \ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \ " PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,alsa-lib" @@ -41,13 +42,11 @@ PACKAGECONFIG[nm] = "-Dnetwork_manager=true,-Dnetwork_manager=false,networkmanag PACKAGECONFIG[smartcard] = "-Dsmartcard=true,-Dsmartcard=false,nss" PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland" -FILES:${PN} += " \ - ${systemd_user_unitdir} \ - ${libdir}/gnome-settings-daemon-43/libgsd.so \ -" - EXTRA_OEMESON += "\ -Dwwan=false \ - -Dusb-protection=false \ - -Dsystemd=true \ +" + +FILES:${PN} += " \ + ${systemd_user_unitdir} \ + /usr/lib/gnome-settings-daemon-45/libgsd.so \ " diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_43.0.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb similarity index 85% rename from meta-gnome/recipes-gnome/gnome-shell/gnome-shell_43.0.bb rename to meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb index 3803b86..e1ee677 100644 --- a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_43.0.bb +++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb @@ -6,10 +6,10 @@ REQUIRED_DISTRO_FEATURES = "x11 systemd pam" GIR_MESON_OPTION = "" GTKIC_VERSION = "4" -SRCREV = "2c8f4aeaa4ffb9b80b1965b8cfadfb3be9205b1e" +SRCREV = "4474416d653af44a9ba9724583ddff091a92a948" EXTERNAL_TREE_VAR="CITADEL_GNOME_SHELL_PATH" -GIT_URI = "gitsm://github.com/brl/gnome-shell.git;branch=citadel-43.0;protocol=https" +GIT_URI = "gitsm://github.com/brl/gnome-shell.git;branch=citadel-45.0;protocol=https" GNOMEBASEBUILDCLASS = "meson" @@ -18,12 +18,12 @@ DEPENDS = " \ sassc-native \ gtk4 \ mutter \ - gcr4 \ + gcr \ gjs \ - mozjs-102 \ network-manager-applet \ gnome-autoar \ polkit \ + libsoup-3.0 \ libcroco \ startup-notification \ ibus \ @@ -32,7 +32,7 @@ DEPENDS = " \ inherit gnomebase gsettings gettext gobject-introspection gtk-icon-cache features_check external-tree -RDEPENDS:${PN} = "gsettings-desktop-schemas librsvg-gtk" +RDEPENDS:${PN} = "gsettings-desktop-schemas librsvg-gtk tecla" FILES:${PN} += "\ ${datadir}/dbus-1 \ @@ -57,4 +57,4 @@ do_configure:append () { sed --in-place=.old1 "s;=${MUTTER_DIR};=${PKG_CONFIG_SYSROOT_DIR}${MUTTER_DIR};" ${B}/build.ninja } -EXTRA_OEMESON += "-Dman=false -Dsystemd=true -Dnetworkmanager=true -Dextensions_app=false -Dtests=false" +EXTRA_OEMESON += "-Dman=false -Dsystemd=true -Dnetworkmanager=true -Dextensions_app=false -Dtests=false -Dcamera_monitor=false" diff --git a/meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_43.0.bb b/meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_43.0.bb deleted file mode 100644 index 5e5af99..0000000 --- a/meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_43.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "GNOME desktop-wide GSettings schemas" -HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPL-2.1-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS = "glib-2.0 intltool-native" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase gsettings gettext gobject-introspection upstream-version-is-even - -EXTRA_OEMESON = "-Dintrospection=true" - -def gnome_verdir(v): - return oe.utils.trim_version(v, 1) - -SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive" - -SRC_URI[archive.sha256sum] = "5d5568282ab38b95759d425401f7476e56f8cbf2629885587439f43bd0b84bbe" - 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_45.0.bb new file mode 100644 index 0000000..a46f479 --- /dev/null +++ b/meta-gnome/recipes-gnome/gsettings-desktop-schema/gsettings-desktop-schemas_45.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "GNOME desktop-wide GSettings schemas" +DESCRIPTION = "GSettings desktop-wide schemas contains a collection of \ +GSettings schemas for settings shared by various components of a desktop." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/issues" + +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "glib-2.0" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gobject-introspection gettext + +SRC_URI[archive.sha256sum] = "365c8d04daf79b38c8b3dc9626349a024f9e4befdd31fede74b42f7a9fbe0ae2" diff --git a/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.2.0.bb b/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.4.0.bb similarity index 59% rename from meta-gnome/recipes-gnome/libadwaita/libadwaita_1.2.0.bb rename to meta-gnome/recipes-gnome/libadwaita/libadwaita_1.4.0.bb index 7a1f86a..d8aa2cd 100644 --- a/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.2.0.bb +++ b/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.4.0.bb @@ -1,17 +1,18 @@ SUMMARY = "Building blocks for modern GNOME applications" +HOMEPAGE = "https://gitlab.gnome.org/GNOME/libadwaita" LICENSE="LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" GNOMEBASEBUILDCLASS = "meson" DEPENDS = " \ - sassc-native \ gtk4 \ + appstream \ " -inherit gnomebase gobject-introspection gtk-doc vala features_check +inherit gnomebase gobject-introspection gi-docgen vala features_check -SRC_URI[archive.sha256sum] = "322f3e1be39ba67981d9fe7228a85818eccaa2ed0aa42bcafe263af881c6460c" +SRC_URI[archive.sha256sum] = "e51a098a54d43568218fc48fcf52e80e36f469b3ce912d8ce9c308a37e9f47c2" ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" REQUIRED_DISTRO_FEATURES = "opengl" @@ -23,3 +24,5 @@ GTKDOC_MESON_OPTION = 'gtk_doc' PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false" FILES:${PN} += "${datadir}/metainfo" + +EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}" diff --git a/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch b/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch index 6c6a643..3a075de 100644 --- a/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch +++ b/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch @@ -11,23 +11,16 @@ For us this works perfectly fine Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller ---- - libgweather/meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) +Signed-off-by: Markus Volk -diff --git a/libgweather/meson.build b/libgweather/meson.build -index 08311af..ef554f2 100644 ---- a/libgweather/meson.build -+++ b/libgweather/meson.build -@@ -208,7 +208,7 @@ lib_libgweather = library('gweather-4', - ) +--- a/meson.build 2022-09-18 14:48:53.000000000 +0200 ++++ b/meson.build 2022-11-26 14:05:13.302487232 +0100 +@@ -51,7 +51,7 @@ + gen_locations_variant = find_program('build-aux/meson/gen_locations_variant.py') g_ir_scanner = find_program('g-ir-scanner', required: get_option('introspection')) -build_gir = get_option('introspection') and g_ir_scanner.found() and not meson.is_cross_build() +build_gir = get_option('introspection') and g_ir_scanner.found() + build_docs = get_option('gtk_doc') and build_gir - enable_vala = get_option('enable_vala') - vapigen = find_program('vapigen', required: enable_vala == 'true') --- -2.34.1 - + schemas_srcdir = meson.project_source_root() / 'schemas' diff --git a/meta-gnome/recipes-gnome/libgweather/libgweather4_4.0.0.bb b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb similarity index 68% rename from meta-gnome/recipes-gnome/libgweather/libgweather4_4.0.0.bb rename to meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb index 708d27a..f2ffcfd 100644 --- a/meta-gnome/recipes-gnome/libgweather/libgweather4_4.0.0.bb +++ b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb @@ -7,18 +7,20 @@ GNOMEBASEBUILDCLASS = "meson" GNOMEBN = "libgweather" S = "${WORKDIR}/${GNOMEBN}-${PV}" -inherit gnomebase gsettings gobject-introspection gettext gtk-doc vala +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] = "440d44801b6f72b48c676e5e37f9109cfee1394fd74cc92725e1b1ba4fae834c" +SRC_URI[archive.sha256sum] = "af8a812da0d8976a000e1d62572c256086a817323fbf35b066dbfdd8d2ca6203" GTKDOC_MESON_OPTION = "gtk_doc" DEPENDS = " \ geocode-glib \ - gtk+3 \ + gtk4 \ json-glib \ - libsoup-2.4 \ + libsoup-3.0 \ python3-pygobject-native \ " diff --git a/meta-gnome/recipes-gnome/mutter/mutter_43.0.bb b/meta-gnome/recipes-gnome/mutter/mutter_45.0.bb similarity index 92% rename from meta-gnome/recipes-gnome/mutter/mutter_43.0.bb rename to meta-gnome/recipes-gnome/mutter/mutter_45.0.bb index ff00c79..34b4c54 100644 --- a/meta-gnome/recipes-gnome/mutter/mutter_43.0.bb +++ b/meta-gnome/recipes-gnome/mutter/mutter_45.0.bb @@ -11,6 +11,7 @@ DEPENDS = " \ libwacom \ xcomposite \ libinput \ + libei \ libcanberra \ mesa \ upower \ @@ -25,6 +26,7 @@ DEPENDS = " \ gnome-settings-daemon \ libxtst \ libxkbfile \ + startup-notification \ xinerama \ graphene \ graphene-native \ @@ -37,10 +39,10 @@ DEPENDS = " \ RDEPENDS:${PN} += " xwayland zenity" -SRCREV = "901190c5a5edbef9c41f8101f3b9ded50ea26c9e" +SRCREV = "d195a063858494cf9c222c5928b1ca1d5eec8624" EXTERNAL_TREE_VAR="CITADEL_MUTTER_PATH" -GIT_URI = "git://github.com/brl/mutter.git;branch=citadel-43.0;protocol=https" +GIT_URI = "git://github.com/brl/mutter.git;branch=citadel-45.0;protocol=https" GNOMEBASEBUILDCLASS = "meson" @@ -65,7 +67,7 @@ EXTRA_OEMESON += " \ -Dgles2_libname=libGLESv2.so.2 \ " -MUTTER_API_NAME = "mutter-11" +MUTTER_API_NAME = "mutter-13" do_install:append() { # Add gir links in standard paths. That makes dependents life much easier diff --git a/meta-gnome/recipes-support/appstream/appstream/0001-meson-do-not-rely-on-an-exe-wrapper.patch b/meta-gnome/recipes-support/appstream/appstream/0001-meson-do-not-rely-on-an-exe-wrapper.patch new file mode 100644 index 0000000..d4f2951 --- /dev/null +++ b/meta-gnome/recipes-support/appstream/appstream/0001-meson-do-not-rely-on-an-exe-wrapper.patch @@ -0,0 +1,36 @@ +From 79bf322768990b28c29a9d907edcca52ff48e0b8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= +Date: Wed, 26 Jul 2023 23:21:10 +0400 +Subject: meson: do not rely on an exe wrapper +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Marc-André Lureau + +Upstream-Status: Backport [https://github.com/ximion/appstream/commit/79bf322768990b28c29a9d907edcca52ff48e0b8] +--- + data/meson.build | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/data/meson.build b/data/meson.build +index aea0cb25..ec0e434f 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -7,6 +7,13 @@ install_data('its/metainfo.its', + install_data('its/metainfo.loc', + install_dir: join_paths(get_option('datadir'), 'gettext', 'its')) + ++# Do not rely on an exe wrapper for rel-info, use the system one in that case ++if meson.is_cross_build() ++ dependency('appstream', version: '>=' + as_version, native: true, ++ not_found_message: 'Native appstream required for cross-building') ++ ascli_exe = find_program('appstreamcli') ++endif ++ + # NOTE: We do not translate the release notes on purpose here. + # If you do want to give translators a chance to translate them, + # ascli news-to-metainfo needs to produce a temporary file to translate +-- +2.41.0 + diff --git a/meta-gnome/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch b/meta-gnome/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch new file mode 100644 index 0000000..9cbfaca --- /dev/null +++ b/meta-gnome/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch @@ -0,0 +1,31 @@ +From 6ab00a4279823829a9b82dc9e4d055da4de88c6e Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Mon, 12 Dec 2022 15:42:42 +0100 +Subject: [PATCH] remove hardcoded path + +Signed-off-by: Markus Volk + +Dont include hardcoded path. This fixes: +| cc1: error: include location "/usr/include" is unsafe for cross-compilation [-Werror=poison-system-directories] + +Upstream-Status: Inappropriate [oe-specific] +--- + meson.build | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/meson.build b/meson.build +index fd0e3373..2f273ada 100644 +--- a/meson.build ++++ b/meson.build +@@ -124,7 +124,7 @@ if get_option ('gir') + dependency('gobject-introspection-1.0', version: '>=1.56') + endif + +-stemmer_inc_dirs = include_directories(['/usr/include']) ++stemmer_inc_dirs = include_directories(['']) + if get_option('stemming') + stemmer_lib = cc.find_library('stemmer', required: true) + if not cc.has_header('libstemmer.h') +-- +2.34.1 + diff --git a/meta-gnome/recipes-support/appstream/appstream_0.16.3.bb b/meta-gnome/recipes-support/appstream/appstream_0.16.3.bb new file mode 100644 index 0000000..bde679e --- /dev/null +++ b/meta-gnome/recipes-support/appstream/appstream_0.16.3.bb @@ -0,0 +1,45 @@ +SUMMARY = "AppStream is a collaborative effort for making machine-readable software metadata easily available." +HOMEPAGE = "https://github.com/ximion/appstream" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=435ed639f84d4585d93824e7da3d85da" + +DEPENDS = " \ + appstream-native \ + curl-native \ + curl \ + docbook-xml-dtd4-native \ + gperf-native \ + glib-2.0 \ + libyaml \ + libxml2 \ + libxmlb \ + libxslt-native \ + itstool-native \ + docbook-xsl-stylesheets-native \ + python3-pygments-native \ +" + +inherit meson gobject-introspection gettext gtk-doc pkgconfig vala + +GIR_MESON_OPTION = "gir" +GTKDOC_MESON_OPTION = "apidocs" + +SRC_URI = " \ + https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz \ + file://0001-remove-hardcoded-path.patch \ + file://0001-meson-do-not-rely-on-an-exe-wrapper.patch \ +" +SRC_URI[sha256sum] = "081c917646e94d7221c9e4aae54dacda95a27c607fa93cd8e6344a2b318b98b1" + +S = "${WORKDIR}/AppStream-${PV}" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" + +PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" +PACKAGECONFIG[stemming] = "-Dstemming=true,-Dstemming=false,libstemmer" + +FILES:${PN} += "${datadir}" + +EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}" + +BBCLASSEXTEND = "native" diff --git a/meta-gnome/recipes-support/gcr4/gcr4/0001-Don-t-require-ssh-binaries-for-build.patch b/meta-gnome/recipes-support/gcr4/gcr4/0001-Don-t-require-ssh-binaries-for-build.patch deleted file mode 100644 index 0863578..0000000 --- a/meta-gnome/recipes-support/gcr4/gcr4/0001-Don-t-require-ssh-binaries-for-build.patch +++ /dev/null @@ -1,35 +0,0 @@ -From eadb72985d59d66684225591ec395610a3877c0b Mon Sep 17 00:00:00 2001 -From: Bruce Leidl -Date: Thu, 22 Sep 2022 18:01:51 -0400 -Subject: [PATCH] Don't require ssh binaries for build - ---- - meson.build | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/meson.build b/meson.build -index ad41582..d16ef48 100644 ---- a/meson.build -+++ b/meson.build -@@ -58,8 +58,8 @@ if p11_system_config_modules == '' - error('Couldn\'t find location for pkcs11 module config') - endif - libsecret_dep = dependency('libsecret-1', version: '>= 0.20', required: get_option('ssh_agent')) --ssh_add_path = find_program('ssh-add', required: get_option('ssh_agent')).full_path() --ssh_agent_path = find_program('ssh-agent', required: get_option('ssh_agent')).full_path() -+#ssh_add_path = find_program('ssh-add', required: get_option('ssh_agent')).full_path() -+#ssh_agent_path = find_program('ssh-agent', required: get_option('ssh_agent')).full_path() - - with_systemd = false - libsystemd_deps = [] -@@ -96,8 +96,8 @@ conf.set('HAVE_TIMEGM', cc.has_function('timegm')) - conf.set('HAVE_MLOCK', cc.has_function('mlock')) - conf.set_quoted('GPG_EXECUTABLE', gpg_path) - conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version()) --conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) --conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) -+#conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) -+#conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) - conf.set10('WITH_SYSTEMD', with_systemd) - config_file = configure_file( - output: 'config.h', diff --git a/meta-gnome/recipes-support/gcr4/gcr4/0001-gcr-meson.build-fix-one-parallel-build-failure.patch b/meta-gnome/recipes-support/gcr4/gcr4/0001-gcr-meson.build-fix-one-parallel-build-failure.patch deleted file mode 100644 index 81c4bdb..0000000 --- a/meta-gnome/recipes-support/gcr4/gcr4/0001-gcr-meson.build-fix-one-parallel-build-failure.patch +++ /dev/null @@ -1,37 +0,0 @@ -From cb3708bad88e713e4ccf705cb8c14c5996cd9d06 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Fri, 23 Apr 2021 16:32:38 +0800 -Subject: [PATCH] gcr/meson.build: fix one parallel build failure - -ui/gcr-live-search.c includes gcr/gcr-marshal.h. Because missing -dependency, following error occurred intermittently during doing parallel -build: - - -o ui/libgcr-ui-3.so.1.0.0.p/gcr-live-search.c.o -c ../gcr-3.38.1/ui/gcr-live-search.c -../gcr-3.38.1/ui/gcr-live-search.c:32:10: fatal error: gcr/gcr-marshal.h: No such file or directory - 32 | #include "gcr/gcr-marshal.h" - | ^~~~~~~~~~~~~~~~~~~ -compilation terminated. - -Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/68/diffs] - -Signed-off-by: Changqing Li ---- - gcr/meson.build | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gcr/meson.build b/gcr/meson.build -index 06c3a63..d9d4b8f 100644 ---- a/gcr/meson.build -+++ b/gcr/meson.build -@@ -181,6 +181,7 @@ gcr_base_dep = declare_dependency( - sources: [ - gcr_enums_gen[1], - gcr_oids[1], -+ gcr_marshal_gen[1], - ], - ) - --- -2.17.1 - diff --git a/meta-gnome/recipes-support/gcr4/gcr4/b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch b/meta-gnome/recipes-support/gcr4/gcr4/b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch deleted file mode 100644 index ae4e2ac..0000000 --- a/meta-gnome/recipes-support/gcr4/gcr4/b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch +++ /dev/null @@ -1,61 +0,0 @@ -From b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8 Mon Sep 17 00:00:00 2001 -From: Jakub Jirutka -Date: Wed, 12 Jan 2022 00:24:20 +0100 -Subject: [PATCH] meson: Fix unknown kw argument in gnome.generate_gir - -This argument has been removed in Meson 0.61.0: - - gck/meson.build:130:2: ERROR: gnome.generate_gir got unknown keyword arguments "packages" - -https://github.com/mesonbuild/meson/commit/f8fc5cb860465718fe7c79a1bf1fe00659f138de: - -> The packages argument to gnome.generate_gir was allowed, but never did anything, so stop passing it. - -Fixes #89 -Upstream-Status: Backport -Signed-off-by: Alexander Kanavin ---- - gck/meson.build | 1 - - gcr/meson.build | 1 - - ui/meson.build | 1 - - 3 files changed, 3 deletions(-) - -diff --git a/gck/meson.build b/gck/meson.build -index 756b486..a21a1e9 100644 ---- a/gck/meson.build -+++ b/gck/meson.build -@@ -131,7 +131,6 @@ if get_option('introspection') - sources: gck_gir_sources, - namespace: 'Gck', - nsversion: '@0@'.format(gck_major_version), -- packages: gck_deps, - export_packages: 'gck-@0@'.format(gck_major_version), - includes: [ 'GObject-2.0', 'Gio-2.0' ], - header: 'gck/gck.h', -diff --git a/gcr/meson.build b/gcr/meson.build -index 2233a44..c83641b 100644 ---- a/gcr/meson.build -+++ b/gcr/meson.build -@@ -190,7 +190,6 @@ if get_option('introspection') - sources: [ gcr_base_public_sources, gcr_base_headers ], - namespace: 'Gcr', - nsversion: '@0@'.format(gcr_major_version), -- packages: gcr_base_deps, - export_packages: 'gcr-base-@0@'.format(gcr_major_version), - includes: [ - 'GObject-2.0', -diff --git a/ui/meson.build b/ui/meson.build -index e656ea2..32ee057 100644 ---- a/ui/meson.build -+++ b/ui/meson.build -@@ -152,7 +152,6 @@ if get_option('introspection') - export_packages: 'gcr-ui-@0@'.format(gcr_major_version), - identifier_prefix: 'Gcr', - symbol_prefix: 'gcr', -- packages: gcr_ui_deps, - includes: [ - 'GObject-2.0', - 'Gio-2.0', --- -GitLab - diff --git a/meta-gnome/recipes-support/gcr4/gcr4_3.92.0.bb b/meta-gnome/recipes-support/gcr4/gcr4_3.92.0.bb deleted file mode 100644 index 7977f34..0000000 --- a/meta-gnome/recipes-support/gcr4/gcr4_3.92.0.bb +++ /dev/null @@ -1,52 +0,0 @@ -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 gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg -UPSTREAM_CHECK_REGEX = "[^\d\.](?P\d+\.(?!9\d+)(\d*[02468])+(\.\d+)+)\.tar" - -SRC_URI = "https://download.gnome.org/sources/gcr/3.92/gcr-3.92.0.tar.xz;name=archive" -SRC_URI += " file://0001-Don-t-require-ssh-binaries-for-build.patch" -SRC_URI[archive.sha256sum] = "896abf8e1db0f40eb28073f364f36a72385ac8abf8cd1362b1016e97721ff518" - -S="${WORKDIR}/gcr-${PV}" - -PACKAGECONFIG ??= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ -" -PACKAGECONFIG[gtk] = "-Dgtk4=true,-Dgtk4=false,gtk4" - -FILES:${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/gcr-3 \ -" - -# 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" -EXTRA_OEMESON += "-Dssh_agent=false" -do_write_config:append() { - cat >${WORKDIR}/meson-${PN}.cross < +Date: Fri, 15 Feb 2019 11:17:27 +0100 +Subject: [PATCH] Do not write $bindir into pkg-config files + +This would otherwise break when using the files to build other target +components (we need to rely on PATH containing the paths to utilities, +rather than use target paths). + +Upstream-Status: Inappropriate [upstream wants the paths in .pc files] +Signed-off-by: Alexander Kanavin + +--- + gio/meson.build | 16 ++++++++-------- + glib/meson.build | 6 +++--- + 2 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/gio/meson.build b/gio/meson.build +index a320c0f..86ce7c4 100644 +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -884,14 +884,14 @@ pkg.generate(libgio, + 'dtdsdir=' + '${datadir}' / dtds_subdir, + 'bindir=' + '${prefix}' / get_option('bindir'), + 'giomoduledir=' + pkgconfig_giomodulesdir, +- 'gio=' + '${bindir}' / 'gio', +- 'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules', +- 'glib_compile_schemas=' + pkgconfig_multiarch_bindir / 'glib-compile-schemas', +- 'glib_compile_resources=' + '${bindir}' / 'glib-compile-resources', +- 'gdbus=' + '${bindir}' /'gdbus', +- 'gdbus_codegen=' + '${bindir}' / 'gdbus-codegen', +- 'gresource=' + '${bindir}' / 'gresource', +- 'gsettings=' + '${bindir}' / 'gsettings', ++ 'gio=gio', ++ 'gio_querymodules=gio-querymodules', ++ 'glib_compile_schemas=glib-compile-schemas', ++ 'glib_compile_resources=glib-compile-resources', ++ 'gdbus=gdbus', ++ 'gdbus_codegen=gdbus-codegen', ++ 'gresource=gresource', ++ 'gsettings=gsettings', + ], + version : glib_version, + install_dir : glib_pkgconfigreldir, +diff --git a/glib/meson.build b/glib/meson.build +index c26a35e..1d8ca6b 100644 +--- a/glib/meson.build ++++ b/glib/meson.build +@@ -447,9 +447,9 @@ pkg.generate(libglib, + variables : [ + 'bindir=' + '${prefix}' / get_option('bindir'), + 'datadir=' + '${prefix}' / get_option('datadir'), +- 'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal', +- 'gobject_query=' + '${bindir}' / 'gobject-query', +- 'glib_mkenums=' + '${bindir}' / 'glib-mkenums', ++ 'glib_genmarshal=glib-genmarshal', ++ 'gobject_query=gobject-query', ++ 'glib_mkenums=glib-mkenums', + 'glib_valgrind_suppressions=' + '${datadir}' / + valgrind_suppression_file_install_subdir / + fs.name(valgrind_suppression_file), diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch new file mode 100644 index 0000000..16f2d31 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch @@ -0,0 +1,31 @@ +From c94e669de98a3892c699bd8d0d2b5164b2de747e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Mar 2014 22:42:29 -0700 +Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux + +translation files are always installed under PREFIX/share/locale in uclibc +based systems therefore lets set DATADIRNAME to "share". + +Signed-off-by: Khem Raj +Upstream-Status: Pending + + +--- + m4macros/glib-gettext.m4 | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/m4macros/glib-gettext.m4 b/m4macros/glib-gettext.m4 +index df6fbf0..47db864 100644 +--- a/m4macros/glib-gettext.m4 ++++ b/m4macros/glib-gettext.m4 +@@ -293,6 +293,10 @@ msgstr "" + CATOBJEXT=.mo + DATADIRNAME=share + ;; ++ *-*-musl* | *-*-linux-uclibc*) ++ CATOBJEXT=.gmo ++ DATADIRNAME=share ++ ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch new file mode 100644 index 0000000..597864d --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch @@ -0,0 +1,27 @@ +From 0015db45cd1bfefc04959dffab5dabeead93136f Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 22 Mar 2016 15:14:58 +0200 +Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM + +We want to install this binary with the gio library, and debian +renamer does not cope with library packages with files in ${bindir} + +Signed-off-by: Jussi Kukkonen +Upstream-Status: Inappropriate [OE specific] + +--- + gio/meson.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gio/meson.build b/gio/meson.build +index 2ef60ed..532b086 100644 +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -936,6 +936,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu + c_args : gio_c_args, + # intl.lib is not compatible with SAFESEH + link_args : noseh_link_args, ++ install_dir: glib_libexecdir, + dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) + + glib_compile_schemas = executable('glib-compile-schemas', diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch new file mode 100644 index 0000000..6fd9352 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch @@ -0,0 +1,40 @@ +From 4f47b8a8d650d185aa61aec2f56a283522a723c4 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 12 Jun 2015 17:08:46 +0300 +Subject: [PATCH] Remove the warning about deprecated paths in schemas + +Some schemas in gsettings-desktop-schemas (such as proxy and locale) +are still using deprecated paths, as of 3.16.1. This causes warning +messages, and meta/lib/oe/rootfs.py complaints about them. + +Upstream-Status: Inappropriate +Signed-off-by: Alexander Kanavin + +--- + gio/glib-compile-schemas.c | 13 ------------- + 1 file changed, 13 deletions(-) + +diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c +index 7888120..7acbd5b 100644 +--- a/gio/glib-compile-schemas.c ++++ b/gio/glib-compile-schemas.c +@@ -1232,19 +1232,6 @@ parse_state_start_schema (ParseState *state, + return; + } + +- if (path && (g_str_has_prefix (path, "/apps/") || +- g_str_has_prefix (path, "/desktop/") || +- g_str_has_prefix (path, "/system/"))) +- { +- gchar *message = NULL; +- message = g_strdup_printf (_("Warning: Schema “%s” has path “%s”. " +- "Paths starting with " +- "“/apps/”, “/desktop/” or “/system/” are deprecated."), +- id, path); +- g_printerr ("%s\n", message); +- g_free (message); +- } +- + state->schema_state = schema_state_new (path, gettext_domain, + extends, extends_name, list_of); + diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch new file mode 100644 index 0000000..2e1e231 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch @@ -0,0 +1,81 @@ +From ba1728bc27c88597164957d000b70ec4be6edf28 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 13 Feb 2019 15:32:05 +0100 +Subject: [PATCH] Set host_machine correctly when building with mingw32 + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + gio/tests/meson.build | 8 ++++---- + glib/tests/meson.build | 2 +- + meson.build | 3 +++ + 3 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/gio/tests/meson.build b/gio/tests/meson.build +index f644aa2..64a8684 100644 +--- a/gio/tests/meson.build ++++ b/gio/tests/meson.build +@@ -29,7 +29,7 @@ endif + + test_cpp_args = test_c_args + +-if host_machine.system() == 'windows' ++if host_system == 'windows' + common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')] + endif + +@@ -210,7 +210,7 @@ if have_dbus_daemon + endif + + # Test programs buildable on UNIX only +-if host_machine.system() != 'windows' ++if host_system != 'windows' + gio_tests += { + 'file' : {}, + 'gdbus-peer-object-manager' : {}, +@@ -462,7 +462,7 @@ if host_machine.system() != 'windows' + endif # unix + + # Test programs buildable on Windows only +-if host_machine.system() == 'windows' ++if host_system == 'windows' + gio_tests += {'win32-streams' : {}} + endif + +@@ -532,7 +532,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl' + } + endif + +-if host_machine.system() != 'windows' ++if host_system != 'windows' + test_extra_programs += { + 'gdbus-example-unix-fd-client' : { + 'install' : false, +diff --git a/glib/tests/meson.build b/glib/tests/meson.build +index db01b54..6950817 100644 +--- a/glib/tests/meson.build ++++ b/glib/tests/meson.build +@@ -188,7 +188,7 @@ if glib_conf.has('HAVE_EVENTFD') + } + endif + +-if host_machine.system() == 'windows' ++if host_system == 'windows' + if winsock2.found() + glib_tests += { + 'gpoll' : { +diff --git a/meson.build b/meson.build +index 43bb468..5f9b59c 100644 +--- a/meson.build ++++ b/meson.build +@@ -43,6 +43,9 @@ else + endif + + host_system = host_machine.system() ++if host_system == 'mingw32' ++ host_system = 'windows' ++endif + + if host_system == 'darwin' + ios_test_code = '''#include diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch new file mode 100644 index 0000000..d33fdd4 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch @@ -0,0 +1,28 @@ +From 92de6c7eb30b961b24a2dce812d5276487b7d23d Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 8 Jan 2020 18:22:46 +0100 +Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test + +This test requires building resources in a way that is +not cross-compatible (hardcodes ld and objcopy). + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + gio/tests/resources.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gio/tests/resources.c b/gio/tests/resources.c +index c44d214..e289a01 100644 +--- a/gio/tests/resources.c ++++ b/gio/tests/resources.c +@@ -993,7 +993,7 @@ main (int argc, + g_test_add_func ("/resource/automatic", test_resource_automatic); + /* This only uses automatic resources too, so it tests the constructors and destructors */ + g_test_add_func ("/resource/module", test_resource_module); +- g_test_add_func ("/resource/binary-linked", test_resource_binary_linked); ++ /* g_test_add_func ("/resource/binary-linked", test_resource_binary_linked); */ + #endif + g_test_add_func ("/resource/uri/query-info", test_uri_query_info); + g_test_add_func ("/resource/uri/file", test_uri_file); diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch new file mode 100644 index 0000000..44482dd --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch @@ -0,0 +1,29 @@ +From 4b97f457b7b44117e27d2a218c4b68e7fe3fe4ce Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 12 Oct 2019 17:46:26 -0700 +Subject: [PATCH] meson: Run atomics test on clang as well + +Fixes +./glib-2.62.1/glib/gatomic.c:675:2: error: G_ATOMIC_LOCK_FREE defined, but incapable of lock-free atomics. +^ + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index afb6eaa..6aa70f5 100644 +--- a/meson.build ++++ b/meson.build +@@ -1692,7 +1692,7 @@ atomicdefine = ''' + # We know that we can always use real ("lock free") atomic operations with MSVC + if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops') + have_atomic_lock_free = true +- if cc.get_id() == 'gcc' and not cc.compiles(atomicdefine, name : 'atomic ops define') ++ if (cc.get_id() == 'gcc' or cc.get_id() == 'clang') and not cc.compiles(atomicdefine, name : 'atomic ops define') + # Old gcc release may provide + # __sync_bool_compare_and_swap but doesn't define + # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch new file mode 100644 index 0000000..788f420 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch @@ -0,0 +1,32 @@ +From 9aa9574861fad39d0679025e35fe1e188345f685 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Sat, 16 Sep 2023 22:28:27 +0200 +Subject: [PATCH] meson.build: do not enable pidfd features on native glib + builds + +We still use host distros like alma 8 with kernels older than 5.4, +where these features are not implemented. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + meson.build | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 1c36993..bbf97fc 100644 +--- a/meson.build ++++ b/meson.build +@@ -981,7 +981,8 @@ if cc.links('''#include + waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG); + return 0; + }''', name : 'pidfd_open(2) system call') +- glib_conf.set('HAVE_PIDFD', 1) ++ #requires kernel 5.4+ ++ #glib_conf.set('HAVE_PIDFD', 1) + endif + + # Check for __uint128_t (gcc) by checking for 128-bit division +-- +2.30.2 + diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch new file mode 100644 index 0000000..1c645f3 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch @@ -0,0 +1,44 @@ +From 79ce7e545dd3a93f77d2146d50b6fa061fbceed9 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 3 Oct 2017 10:45:55 +0300 +Subject: [PATCH] Do not hardcode python path into various tools + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +- + gobject/glib-genmarshal.in | 2 +- + gobject/glib-mkenums.in | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in +index 67d3675..4e92a7a 100755 +--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in ++++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in +@@ -1,4 +1,4 @@ +-#!/usr/bin/env @PYTHON@ ++#!/usr/bin/env python3 + + # GDBus - GLib D-Bus Library + # +diff --git a/gobject/glib-genmarshal.in b/gobject/glib-genmarshal.in +index 7380f24..c8abeaa 100755 +--- a/gobject/glib-genmarshal.in ++++ b/gobject/glib-genmarshal.in +@@ -1,4 +1,4 @@ +-#!/usr/bin/env @PYTHON@ ++#!/usr/bin/env python3 + + # pylint: disable=too-many-lines, missing-docstring, invalid-name + +diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in +index 91ad779..3ebef62 100755 +--- a/gobject/glib-mkenums.in ++++ b/gobject/glib-mkenums.in +@@ -1,4 +1,4 @@ +-#!/usr/bin/env @PYTHON@ ++#!/usr/bin/env python3 + + # If the code below looks horrible and unpythonic, do not panic. + # diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common new file mode 100644 index 0000000..0d7c5fa --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common @@ -0,0 +1,3 @@ +[properties] +# On all known supported architectures the stack grows down +growing_stack = false diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-glibc b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-glibc new file mode 100644 index 0000000..3049e51 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-glibc @@ -0,0 +1,6 @@ +[properties] +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true +va_val_copy = true +have_strlcpy = true diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-linux b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-linux new file mode 100644 index 0000000..adad7e6 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-linux @@ -0,0 +1,5 @@ +[properties] +have_proc_self_cmdline = true + +[binaries] +env = '/usr/bin/env' diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-mingw new file mode 100644 index 0000000..75f911b --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-mingw @@ -0,0 +1,6 @@ +[properties] +have_c99_vsnprintf = false +have_c99_snprintf = false +have_unix98_printf = false +va_val_copy = true +have_proc_self_cmdline = false diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-musl b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-musl new file mode 100644 index 0000000..3049e51 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/meson.cross.d/common-musl @@ -0,0 +1,6 @@ +[properties] +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true +va_val_copy = true +have_strlcpy = true diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/relocate-modules.patch b/meta-gnome/recipes-support/glib-2.0/glib-2.0/relocate-modules.patch new file mode 100644 index 0000000..841fede --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/relocate-modules.patch @@ -0,0 +1,45 @@ +From b90d13900dd2777c2ab90c5b0be1a872c10a17da Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Fri, 11 Mar 2016 15:35:55 +0000 +Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds + +Instead of hard-coding GIO_MODULE_PATH when glib is built, use dladdr() to +determine where libglib.so is and use that path to calculate GIO_MODULES_DIR. + +This solves relocation problems with GIOModule for native builds of glib. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton + +Port patch to 2.48 +Signed-off-by: Jussi Kukkonen + +--- + gio/giomodule.c | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/gio/giomodule.c b/gio/giomodule.c +index 17fabe6..8021208 100644 +--- a/gio/giomodule.c ++++ b/gio/giomodule.c +@@ -1271,11 +1271,6 @@ get_gio_module_dir (void) + g_free (install_dir); + #else + module_dir = g_strdup (GIO_MODULE_DIR); +-#ifdef __APPLE__ +-#include "TargetConditionals.h" +-/* Only auto-relocate on macOS, not watchOS etc; older macOS SDKs only define TARGET_OS_MAC */ +-#if (defined (TARGET_OS_OSX) && TARGET_OS_OSX) || \ +- (!defined (TARGET_OS_OSX) && defined (TARGET_OS_MAC) && TARGET_OS_MAC) + #include + { + g_autofree gchar *path = NULL; +@@ -1294,8 +1289,6 @@ get_gio_module_dir (void) + } + } + } +-#endif +-#endif + #endif + } + diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0/run-ptest b/meta-gnome/recipes-support/glib-2.0/glib-2.0/run-ptest new file mode 100644 index 0000000..831bc3b --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0/run-ptest @@ -0,0 +1,10 @@ +#! /bin/sh + +set -eux +if id -u glib2-test; then + userdel glib2-test +fi +useradd glib2-test +cd /tmp +su glib2-test -c 'G_TEST_TMPDIR=`readlink -f /tmp` gnome-desktop-testing-runner glib' +userdel glib2-test diff --git a/meta-gnome/recipes-support/glib-2.0/glib-2.0_2.78.0.bb b/meta-gnome/recipes-support/glib-2.0/glib-2.0_2.78.0.bb new file mode 100644 index 0000000..500e4e8 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib-2.0_2.78.0.bb @@ -0,0 +1,53 @@ +require glib.inc + +PE = "1" + +SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ + file://run-ptest \ + file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \ + file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \ + file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \ + file://0010-Do-not-hardcode-python-path-into-various-tools.patch \ + file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \ + file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ + file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ + file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \ + " +SRC_URI:append:class-native = " file://relocate-modules.patch \ + file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \ + " + +SRC_URI[sha256sum] = "44eaab8b720877ce303c5540b657b126f12dc94972d9880b52959f43fb537b30" + +# Find any meson cross files in FILESPATH that are relevant for the current +# build (using siteinfo) and add them to EXTRA_OEMESON. +inherit siteinfo +def find_meson_cross_files(d): + if bb.data.inherits_class('native', d): + return "" + + thisdir = os.path.normpath(d.getVar("THISDIR")) + import collections + sitedata = siteinfo_data(d) + # filename -> found + files = collections.OrderedDict() + for path in d.getVar("FILESPATH").split(":"): + for element in sitedata: + filename = os.path.normpath(os.path.join(path, "meson.cross.d", element)) + sanitized_path = filename.replace(thisdir, "${THISDIR}") + if sanitized_path == filename: + if os.path.exists(filename): + bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir)) + continue + files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename) + + items = ["--cross-file=" + k for k,v in files.items() if v] + d.appendVar("EXTRA_OEMESON", " " + " ".join(items)) + items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()] + d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items)) + +python () { + find_meson_cross_files(d) +} diff --git a/meta-gnome/recipes-support/glib-2.0/glib.inc b/meta-gnome/recipes-support/glib-2.0/glib.inc new file mode 100644 index 0000000..c314594 --- /dev/null +++ b/meta-gnome/recipes-support/glib-2.0/glib.inc @@ -0,0 +1,202 @@ +SUMMARY = "A general-purpose utility library" +DESCRIPTION = "GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on." +HOMEPAGE = "https://developer.gnome.org/glib/" + +# pcre is under BSD; +# docs/reference/COPYING is with a 'public domain'-like license! +LICENSE = "LGPL-2.1-or-later & BSD-3-Clause & PD" +LIC_FILES_CHKSUM = "file://COPYING;md5=41890f71f740302b785c27661123bff5 \ + file://glib/glib.h;beginline=4;endline=17;md5=72f7cc2847407f65d8981ef112e4e630 \ + file://LICENSES/LGPL-2.1-or-later.txt;md5=41890f71f740302b785c27661123bff5 \ + file://gmodule/gmodule.h;beginline=4;endline=17;md5=72f7cc2847407f65d8981ef112e4e630 \ + file://docs/reference/COPYING;md5=f51a5100c17af6bae00735cd791e1fcc" +BUGTRACKER = "http://bugzilla.gnome.org" +SECTION = "libs" + +CVE_PRODUCT = "glib" + +BBCLASSEXTEND = "native nativesdk" + +DEPENDS = "glib-2.0-native \ + virtual/libintl \ + virtual/libiconv \ + libffi \ + libpcre2 \ + zlib" + +PACKAGES += "${PN}-codegen ${PN}-utils" + +LEAD_SONAME = "libglib-2.0.*" + +inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages + +DEPENDS:append:class-target = "${@' gtk-doc' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}" + +GTKDOC_MESON_OPTION = "gtk_doc" + +S = "${WORKDIR}/glib-${PV}" + +PACKAGECONFIG ??= "libmount \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" +PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux" +PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native" +PACKAGECONFIG[libelf] = "-Dlibelf=enabled,-Dlibelf=disabled,elfutils" +PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false," +PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux" + +EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false" + +do_configure:prepend() { + sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in +} + +FILES:${PN} = "${libdir}/lib*${SOLIBS} \ + ${libdir}/gio \ + ${libexecdir}/*gio-querymodules \ + ${libexecdir}/*gio-launch-desktop \ + ${datadir}/glib-2.0/dtds \ + ${datadir}/glib-2.0/schemas" + +FILES:${PN}-utils += "${bindir}/glib-genmarshal \ + ${bindir}/glib-gettextize \ + ${bindir}/glib-mkenums \ + ${bindir}/glib-compile-resources" + +FILES:${PN}-dev += "${libdir}/glib-2.0/include \ + ${libdir}/gio/modules/lib*${SOLIBSDEV} \ + ${libdir}/gio/modules/*.la \ + ${datadir}/glib-2.0/gettext/po/Makefile.in.in \ + ${datadir}/glib-2.0/schemas/gschema.dtd \ + ${datadir}/glib-2.0/valgrind/glib.supp \ + ${datadir}/gettext/its" +FILES:${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb" +FILES:${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \ + ${bindir}/gdbus-codegen" +FILES:${PN}-utils = "${bindir}/*" + +SHAREDMIMEDEP = "shared-mime-info" +SHAREDMIMEDEP:class-native = "" +# When cross compiling for Windows we don't want to include this +SHAREDMIMEDEP:mingw32 = "" + +RRECOMMENDS:${PN} += "${SHAREDMIMEDEP}" + +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" +# Valgrind runtime detection works using hand-written assembly, which +# doesn't support mips16e +CPPFLAGS:append:class-target:mips16e = " -DNVALGRIND=1" + +# GLib generally requires gettext to be present so for USE_NLS to yes. For +# native builds as i18n is disabled globally we have to add a gettext-native dependency. +USE_NLS:class-target = "yes" +USE_NLS:class-nativesdk = "yes" +DEPENDS:append:class-native = " gettext-native" + +EXEEXT = "" +EXEEXT:mingw32 = ".exe" + +do_install:append () { + if [ -f ${D}${bindir}/gtester-report ]; then + sed ${D}${bindir}/gtester-report -i -e '1s|^#!.*|#!/usr/bin/env python3|' + fi + + # Remove some unpackaged files + rm -rf ${D}${datadir}/glib-2.0/codegen/__pycache__ + rm -f ${D}${datadir}/glib-2.0/codegen/*.pyc + rm -f ${D}${datadir}/glib-2.0/codegen/*.pyo + + if [ -e ${D}${libdir}/charset.alias ]; then + rm -f ${D}${libdir}/charset.alias + fi + + # Make sure gio-querymodules is unique among multilibs + if test "x${MLPREFIX}" != "x"; then + mv ${D}${libexecdir}/gio-querymodules${EXEEXT} ${D}${libexecdir}/${MLPREFIX}gio-querymodules${EXEEXT} + fi + # Autotools does this, meson does not + mkdir -p ${D}${libdir}/gio/modules +} + +do_install:append:class-target () { + # Tests are only installed on targets, not native builds. Separating this out + # keeps glib-2.0-native from depending on DISTRO_FEATURES + if [ -f ${D}${datadir}/installed-tests/glib/gdbus-serialization.test ]; then + if ${@bb.utils.contains("DISTRO_FEATURES", "x11", "false", "true", d)}; then + rm ${D}${datadir}/installed-tests/glib/gdbus-serialization.test + fi + fi + if [ -f ${D}${datadir}/installed-tests/glib/static-link.test ]; then + if test "x${MLPREFIX}" != "x"; then + mv ${D}${datadir}/installed-tests/glib/static-link.test ${D}${datadir}/installed-tests/glib/${MLPREFIX}static-link.test + fi + fi + # https://gitlab.gnome.org/GNOME/glib/-/issues/2810 + rm -f ${D}${datadir}/installed-tests/glib/thread-pool-slow.test +} + +# As we do not build python3 for windows, makes no sense to ship the script that's using it +do_install:append:mingw32() { + rm -f ${D}${bindir}/gtester-report +} + +CODEGEN_PYTHON_RDEPENDS = "python3 python3-distutils python3-xml" +CODEGEN_PYTHON_RDEPENDS:mingw32 = "" + +RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" + +RDEPENDS:${PN}-ptest += "${PN}-utils" + +RDEPENDS:${PN}-ptest += "\ + coreutils \ + libgcc \ + dbus \ + desktop-file-utils \ + gnome-desktop-testing \ + tzdata \ + tzdata-americas \ + tzdata-asia \ + tzdata-europe \ + tzdata-posix \ + shared-mime-info \ + ${PN}-locale-ja \ + ${PN}-locale-fr \ + ${PN}-locale-el \ + ${PN}-locale-hr \ + ${PN}-locale-lt \ + ${PN}-locale-pl \ + ${PN}-locale-ru \ + ${PN}-locale-th \ + python3-core \ + python3-modules \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-dbusmock', '', d)} \ + ${PN}-codegen \ + " + +RDEPENDS:${PN}-ptest:append:libc-glibc = "\ + glibc-gconv-utf-16 \ + glibc-charmap-utf-8 \ + glibc-gconv-cp1255 \ + glibc-charmap-cp1255 \ + glibc-gconv-utf-32 \ + glibc-gconv-utf-7 \ + glibc-gconv-euc-jp \ + glibc-gconv-iso8859-1 \ + glibc-gconv-iso8859-15 \ + glibc-charmap-invariant \ + glibc-localedata-translit-cjk-variants \ + locale-base-tr-tr \ + locale-base-lt-lt \ + locale-base-ja-jp.euc-jp \ + locale-base-fa-ir \ + locale-base-ru-ru \ + locale-base-de-de \ + locale-base-hr-hr \ + locale-base-el-gr \ + locale-base-fr-fr \ + locale-base-es-es \ + locale-base-en-gb \ + locale-base-en-us \ + locale-base-pl-pl \ + locale-base-pl-pl.iso-8859-2 \ + " diff --git a/meta-gnome/recipes-support/graphene/graphene_1.10.8.bb b/meta-gnome/recipes-support/graphene/graphene_1.10.8.bb deleted file mode 100644 index 813ff74..0000000 --- a/meta-gnome/recipes-support/graphene/graphene_1.10.8.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "A thin layer of graphic data types" -HOMEPAGE = "http://ebassi.github.io/graphene/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a7d871d9e23c450c421a85bb2819f648" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnomebase gobject-introspection gtk-doc - -SRC_URI[archive.sha256sum] = "a37bb0e78a419dcbeaa9c7027bcff52f5ec2367c25ec859da31dfde2928f279a" - -# gtk4 & mutter 41.0 requires graphene build with introspection -PACKAGECONFIG ?= "introspection" -PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled," - -GTKDOC_MESON_OPTION = "gtk_doc" - -EXTRA_OEMESON = "-Dinstalled_tests=false" - -FILES:${PN} += "${libdir}/graphene-1.0" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-gnome/recipes-support/gtk+/gtk+3.inc b/meta-gnome/recipes-support/gtk+/gtk+3.inc new file mode 100644 index 0000000..8d01e60 --- /dev/null +++ b/meta-gnome/recipes-support/gtk+/gtk+3.inc @@ -0,0 +1,151 @@ + +SUMMARY = "Multi-platform toolkit for creating GUIs" +DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ +set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites." +HOMEPAGE = "http://www.gtk.org" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "libs" + +DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf gdk-pixbuf-native" + +LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later" + +inherit meson gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection + +BBCLASSEXTEND = "native nativesdk" + +GSETTINGS_PACKAGE:class-native = "" + +# versions >= 3.90 are development versions, otherwise like upstream-version-is-even +UPSTREAM_CHECK_REGEX = "[^\d\.](?P3\.([1-8]?[02468])+(\.\d+)+)\.tar" + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +do_configure:prepend() { + # These files are generated by wayland-scanner but will race over modification + # time between the copies in the sysroot from wayland-protocols and the copy + # in the source tree. Solve the race by deleting so they need to be regenerated. + rm -f ${S}/modules/input/*-text-input-*.[ch] +} + +GTKDOC_MESON_OPTION = 'gtk_doc' + +EXTRA_OEMESON = "-Dxinerama=no -Dtests=false" +EXTRA_OEMESON:append:class-native = " -Ddemos=false -Dexamples=false" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl wayland x11', d)}" +PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[x11] = "-Dx11_backend=true,-Dx11_backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" +# this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build +PACKAGECONFIG[opengl] = "-Dopengl=true,-Dopengl=false,libepoxy" +PACKAGECONFIG[wayland] = "-Dwayland_backend=true,-Dwayland_backend=false,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native" +PACKAGECONFIG[cups] = ",,cups,cups" +PACKAGECONFIG[colord] = "-Dcolord=yes,-Dcolord=no,colord" +PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=true,-Dcloudproviders=false,libcloudproviders" +PACKAGECONFIG[tracker3] = "-Dtracker3=true,-Dtracker3=false,tracker,tracker-miners" + +prepare_gtk_scripts() { + mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 + + # duplicate gtk-query-immodules for post install script update_gtk_immodules_cache + mkdir -p ${D}${libexecdir} + ln ${D}${bindir}/gtk-query-immodules-3.0 ${D}${libexecdir}/${MLPREFIX}gtk-query-immodules-3.0 +} + +do_install:append:class-target() { + prepare_gtk_scripts +} + +do_install:append:class-nativesdk() { + prepare_gtk_scripts +} + +do_install:append:class-native() { + create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache + create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache +} + +PROVIDES += "gtk-icon-utils" +PACKAGES =+ "${PN}-demo" +LIBV = "3.0.0" + +FILES:${PN}-demo = "${bindir}/gtk3-demo \ + ${bindir}/gtk3-demo-application \ + ${bindir}/gtk3-icon-browser \ + ${bindir}/gtk3-widget-factory \ + ${datadir}/gtk-3.0/demo \ + ${datadir}/applications/gtk3-demo.desktop \ + ${datadir}/applications/gtk3-icon-browser.desktop \ + ${datadir}/applications/gtk3-widget-factory.desktop \ + ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \ + ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png" + +FILES:${PN}:append = " ${bindir}/gtk-update-icon-cache-3.0 \ + ${bindir}/gtk-query-immodules-3.0 \ + ${bindir}/gtk-launch \ + ${datadir}/themes ${datadir}/gtk-3.0/emoji \ + ${sysconfdir} ${datadir}/glib-2.0/schemas/ \ + ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \ + ${libdir}/gtk-3.0/modules/*.so" + +FILES:${PN}-dev += " \ + ${datadir}/gtk-3.0/gtkbuilder.rng \ + ${datadir}/gtk-3.0/include \ + ${datadir}/gtk-3.0/valgrind \ + ${datadir}/gettext/its \ + ${libdir}/gtk-3.0/include \ + ${libdir}/gtk-3.0/${LIBV}/loaders/*.la \ + ${libdir}/gtk-3.0/${LIBV}/immodules/*.la \ + ${libdir}/gtk-3.0/3.0.0/printbackends/*.la \ + ${libdir}/gtk-3.0/${LIBV}/engines/*.la \ + ${libdir}/gtk-3.0/modules/*.la \ + ${bindir}/gtk-builder-convert \ + ${bindir}/gtk-encode-symbolic-svg \ + ${bindir}/gtk-builder-tool \ + ${bindir}/gtk-query-settings \ + " + +GTKBASE_RRECOMMENDS ?= "liberation-fonts \ + gdk-pixbuf-loader-png \ + gdk-pixbuf-loader-jpeg \ + gdk-pixbuf-loader-gif \ + gdk-pixbuf-loader-xpm \ + shared-mime-info \ + adwaita-icon-theme-symbolic \ + " + +GTKBASE_RRECOMMENDS:class-native ?= "\ + " + +GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" + +RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}" +RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}" +RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" + +PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*" + +ALTERNATIVE:${PN} = "gtk-update-icon-cache" +ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-3.0" +ALTERNATIVE_PRIORITY = "30" + +python populate_packages:prepend () { + import os.path + + gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}') + immodules_root = os.path.join(gtk_libdir, 'immodules') + printmodules_root = os.path.join(gtk_libdir, 'printbackends'); + + immodules = do_split_packages(d, immodules_root, r'^im-(.*)\.so$', 'gtk3-immodule-%s', 'GTK input module for %s') + if immodules: + d.setVar("GTKIMMODULES_PACKAGES", " ".join(immodules)) + + do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s') + + if (d.getVar('DEBIAN_NAMES')): + d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-3.0') +} diff --git a/meta-gnome/recipes-support/gtk+/gtk+3/opengl.patch b/meta-gnome/recipes-support/gtk+/gtk+3/opengl.patch new file mode 100644 index 0000000..7354265 --- /dev/null +++ b/meta-gnome/recipes-support/gtk+/gtk+3/opengl.patch @@ -0,0 +1,737 @@ +From 4a0716f04fb25b51b08e994bd5a900b2e7f7fed5 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Fri, 16 Oct 2015 16:35:16 +0300 +Subject: [PATCH] Do not try to initialize GL without libGL + +_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys +GLX api which will exit() if libGL.so.1 is not present. We do not +want that to happen and we don't want every app to have to set +"GDK_GL=disabled" environment variable: so use #ifdef set based on +opengl distro feature. + +Upstream is not interested in the fix as it is: Either epoxy should be +fixed (to not exit) or GTK+ possibly could do some additional probing +before calling epoxy APIs. + +Upstream-Status: Denied +Signed-off-by: Jussi Kukkonen +--- + demos/gtk-demo/meson.build | 5 ++++- + docs/tools/meson.build | 7 +++++-- + docs/tools/widgets.c | 6 +++++- + gdk/gdkconfig.h.meson | 1 + + gdk/gdkdisplay.c | 4 ++++ + gdk/gdkgl.c | 10 ++++++++++ + gdk/gdkglcontext.c | 6 ++++++ + gdk/gdkwindow.c | 13 +++++++++++++ + gdk/meson.build | 8 +++++++- + gdk/x11/gdkdisplay-x11.c | 6 +++++- + gdk/x11/gdkvisual-x11.c | 5 +++++ + gdk/x11/gdkwindow-x11.c | 4 ++++ + gdk/x11/gdkx-autocleanups.h | 2 ++ + gdk/x11/gdkx.h | 2 ++ + gdk/x11/meson.build | 7 +++++-- + gtk/gtkglarea.c | 19 +++++++++++++++++++ + gtk/inspector/general.c | 6 ++++++ + meson.build | 17 ++++++++++++++--- + meson_options.txt | 2 ++ + tests/meson.build | 9 +++++++-- + testsuite/gtk/objects-finalize.c | 2 ++ + 21 files changed, 128 insertions(+), 13 deletions(-) + +diff --git a/demos/gtk-demo/meson.build b/demos/gtk-demo/meson.build +index 252da16d05..4b57cff6ac 100644 +--- a/demos/gtk-demo/meson.build ++++ b/demos/gtk-demo/meson.build +@@ -28,7 +28,6 @@ demos = files([ + 'fishbowl.c', + 'foreigndrawing.c', + 'gestures.c', +- 'glarea.c', + 'headerbar.c', + 'hypertext.c', + 'iconview.c', +@@ -87,6 +86,10 @@ elif harfbuzz_dep.found() and pangoft_dep.found() + gtkdemo_deps += [harfbuzz_dep, pangoft_dep] + endif + ++if opengl_enabled ++ demos += files('glarea.c') ++endif ++ + if os_unix + demos += files('pagesetup.c') + endif +diff --git a/docs/tools/meson.build b/docs/tools/meson.build +index 05621ee7ed..3d0a333b32 100644 +--- a/docs/tools/meson.build ++++ b/docs/tools/meson.build +@@ -2,10 +2,13 @@ if x11_enabled + doc_shooter_sources = [ + 'shadow.c', + 'shooter.c', +- 'widgets.c', +- '../../tests/gtkgears.c', ++ 'widgets.c' + ] + ++ if opengl_enabled ++ doc_shooter_sources += ['../../tests/gtkgears.c'] ++ endif ++ + doc_shooter = executable('doc-shooter', doc_shooter_sources, + include_directories: [ confinc, gdkinc, gtkinc, testinc, ], + dependencies: libgtk_dep) +diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c +index 932daf1746..348807e133 100644 +--- a/docs/tools/widgets.c ++++ b/docs/tools/widgets.c +@@ -8,7 +8,9 @@ + #include + #include + #include "widgets.h" ++#ifdef HAVE_OPENGL + #include "gtkgears.h" ++#endif + + #define SMALL_WIDTH 240 + #define SMALL_HEIGHT 75 +@@ -1526,9 +1528,11 @@ create_gl_area (void) + widget = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN); + ++#ifdef HAVE_OPENGL + gears = gtk_gears_new (); + gtk_container_add (GTK_CONTAINER (widget), gears); +- ++#endif ++ + info = new_widget_info ("glarea", widget, MEDIUM); + + return info; +diff --git a/gdk/gdkconfig.h.meson b/gdk/gdkconfig.h.meson +index 7db19e0470..088651bafa 100644 +--- a/gdk/gdkconfig.h.meson ++++ b/gdk/gdkconfig.h.meson +@@ -15,6 +15,7 @@ G_BEGIN_DECLS + #mesondefine GDK_WINDOWING_WAYLAND + #mesondefine GDK_WINDOWING_WIN32 + #mesondefine GDK_WINDOWING_QUARTZ ++#mesondefine GDK_WITH_OPENGL + + G_END_DECLS + +diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c +index 748f54860c..04ef2c09d4 100644 +--- a/gdk/gdkdisplay.c ++++ b/gdk/gdkdisplay.c +@@ -2420,7 +2420,11 @@ gboolean + gdk_display_make_gl_context_current (GdkDisplay *display, + GdkGLContext *context) + { ++#ifdef HAVE_OPENGL + return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context); ++#else ++ return FALSE; ++#endif + } + + GdkRenderingMode +diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c +index 9690077cc2..55f85ef605 100644 +--- a/gdk/gdkgl.c ++++ b/gdk/gdkgl.c +@@ -26,7 +26,9 @@ + # include "win32/gdkwin32.h" + #endif + ++#ifdef HAVE_OPENGL + #include ++#endif + #include + #include + +@@ -40,6 +42,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface, + g_object_ref (window), g_object_unref); + } + ++#ifdef HAVE_OPENGL + static const char * + get_vertex_type_name (int type) + { +@@ -212,6 +215,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data) + glUseProgram (paint_data->current_program->program); + } + } ++#endif + + void + gdk_gl_texture_quads (GdkGLContext *paint_context, +@@ -220,6 +224,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, + GdkTexturedQuad *quads, + gboolean flip_colors) + { ++#ifdef HAVE_OPENGL + GdkGLContextPaintData *paint_data = gdk_gl_context_get_paint_data (paint_context); + GdkGLContextProgram *program; + GdkWindow *window = gdk_gl_context_get_window (paint_context); +@@ -293,6 +298,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, + + glDisableVertexAttribArray (program->position_location); + glDisableVertexAttribArray (program->uv_location); ++#endif + } + + /* x,y,width,height describes a rectangle in the gl render buffer +@@ -341,6 +347,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, + int width, + int height) + { ++#ifdef HAVE_OPENGL + GdkGLContext *paint_context; + cairo_surface_t *image; + cairo_matrix_t matrix; +@@ -718,6 +725,7 @@ out: + if (clip_region) + cairo_region_destroy (clip_region); + ++#endif + } + + /* This is always called with the paint context current */ +@@ -725,6 +733,7 @@ void + gdk_gl_texture_from_surface (cairo_surface_t *surface, + cairo_region_t *region) + { ++#ifdef HAVE_OPENGL + GdkGLContext *paint_context; + cairo_surface_t *image; + double device_x_offset, device_y_offset; +@@ -825,4 +834,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface, + + glDisable (GL_SCISSOR_TEST); + glDeleteTextures (1, &texture_id); ++#endif + } +diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c +index 3b23639e1c..1f04f8e0b2 100644 +--- a/gdk/gdkglcontext.c ++++ b/gdk/gdkglcontext.c +@@ -85,7 +85,9 @@ + #include "gdkintl.h" + #include "gdk-private.h" + ++#ifdef HAVE_OPENGL + #include ++#endif + + typedef struct { + GdkDisplay *display; +@@ -243,6 +245,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context, + int height, + guint texture_target) + { ++#ifdef HAVE_OPENGL + GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context); + + g_return_if_fail (GDK_IS_GL_CONTEXT (context)); +@@ -286,6 +289,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context, + glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, (unsigned char*) data + (i * stride)); + } + } ++#endif + } + + static gboolean +@@ -774,6 +778,7 @@ gdk_gl_context_realize (GdkGLContext *context, + static void + gdk_gl_context_check_extensions (GdkGLContext *context) + { ++#ifdef HAVE_OPENGL + GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context); + gboolean has_npot, has_texture_rectangle; + +@@ -853,6 +858,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context) + priv->use_texture_rectangle ? "yes" : "no")); + + priv->extensions_checked = TRUE; ++#endif + } + + /** +diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c +index 727b0cf1f4..d4d91b0d16 100644 +--- a/gdk/gdkwindow.c ++++ b/gdk/gdkwindow.c +@@ -45,7 +45,9 @@ + + #include + ++#ifdef HAVE_OPENGL + #include ++#endif + + /* for the use of round() */ + #include "fallback-c89.c" +@@ -2844,6 +2846,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window, + { + GError *internal_error = NULL; + ++#ifndef HAVE_OPENGL ++ g_set_error_literal (error, GDK_GL_ERROR, ++ GDK_GL_ERROR_NOT_AVAILABLE, ++ _("GL support disabled with --disable-opengl")); ++ return NULL; ++#endif ++ + if (_gdk_gl_flags & GDK_GL_DISABLE) + { + g_set_error_literal (error, GDK_GL_ERROR, +@@ -2979,6 +2988,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, + } + else + { ++#ifdef HAVE_OPENGL + gdk_gl_context_make_current (context); + /* With gl we always need a surface to combine the gl + drawing with the native drawing. */ +@@ -2993,6 +3003,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, + glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + + glViewport (0, 0, ww, wh); ++#endif + } + } + +@@ -3056,6 +3067,7 @@ gdk_window_end_paint_internal (GdkWindow *window) + + gdk_gl_context_make_current (window->gl_paint_context); + ++#ifdef HAVE_OPENGL + if (!cairo_region_is_empty (opaque_region)) + gdk_gl_texture_from_surface (window->current_paint.surface, + opaque_region); +@@ -3066,6 +3078,7 @@ gdk_window_end_paint_internal (GdkWindow *window) + window->current_paint.need_blend_region); + glDisable(GL_BLEND); + } ++#endif + + cairo_region_destroy (opaque_region); + +diff --git a/gdk/meson.build b/gdk/meson.build +index 4bb1bf2b6c..64172b8d3e 100644 +--- a/gdk/meson.build ++++ b/gdk/meson.build +@@ -56,7 +56,6 @@ gdk_gir_public_headers = files( + 'gdkdrawingcontext.h', + 'gdkevents.h', + 'gdkframetimings.h', +- 'gdkglcontext.h', + 'gdkkeys.h', + 'gdkkeysyms.h', + 'gdkmain.h', +@@ -78,6 +77,12 @@ gdk_gir_public_headers = files( + 'gdkwindow.h', + ) + gdk_nogir_public_headers = [files('gdkkeysyms-compat.h')] ++if opengl_enabled ++gdk_gir_public_headers += files('gdkglcontext.h') ++else ++gdk_nogir_public_headers += files('gdkglcontext.h') ++endif ++ + gdk_public_headers = gdk_gir_public_headers + gdk_nogir_public_headers + install_headers(gdk_public_headers, subdir : 'gtk-3.0/gdk') + +@@ -166,6 +171,7 @@ gdkconfig_cdata.set('GDK_WINDOWING_WAYLAND', wayland_enabled) + gdkconfig_cdata.set('GDK_WINDOWING_WIN32', win32_enabled) + gdkconfig_cdata.set('GDK_WINDOWING_BROADWAY', broadway_enabled) + gdkconfig_cdata.set('GDK_WINDOWING_QUARTZ', quartz_enabled) ++gdkconfig_cdata.set('GDK_WITH_OPENGL', opengl_enabled) + + gdkconfig = configure_file( + input : 'gdkconfig.h.meson', +diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c +index 7e08f472cc..30fd7b6089 100644 +--- a/gdk/x11/gdkdisplay-x11.c ++++ b/gdk/x11/gdkdisplay-x11.c +@@ -37,7 +37,9 @@ + #include "gdkdisplay-x11.h" + #include "gdkprivate-x11.h" + #include "gdkscreen-x11.h" ++#ifdef HAVE_OPENGL + #include "gdkglcontext-x11.h" ++#endif + #include "gdk-private.h" + #include "gdkprofilerprivate.h" + +@@ -3191,7 +3193,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) + display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list; + display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target; + +- display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current; ++#ifdef HAVE_OPENGL ++ display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current; ++#endif + + display_class->get_default_seat = gdk_x11_display_get_default_seat; + +diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c +index 81479d81f4..3c8c5c02ff 100644 +--- a/gdk/x11/gdkvisual-x11.c ++++ b/gdk/x11/gdkvisual-x11.c +@@ -306,7 +306,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen) + /* If GL is available we want to pick better default/rgba visuals, + as we care about glx details such as alpha/depth/stencil depth, + stereo and double buffering */ ++ /* update_visuals_for_gl() will end up calling epoxy GLX api which ++ will exit if libgl is not there: so only do this if we know GL ++ is available */ ++#ifdef HAVE_GLX + _gdk_x11_screen_update_visuals_for_gl (screen); ++#endif + } + + gint +diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c +index 194bc82e29..0302bb68d4 100644 +--- a/gdk/x11/gdkwindow-x11.c ++++ b/gdk/x11/gdkwindow-x11.c +@@ -36,7 +36,9 @@ + #include "gdkasync.h" + #include "gdkeventsource.h" + #include "gdkdisplay-x11.h" ++#ifdef HAVE_OPENGL + #include "gdkglcontext-x11.h" ++#endif + #include "gdkprivate-x11.h" + #include "gdk-private.h" + +@@ -5888,7 +5890,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass) + impl_class->set_opaque_region = gdk_x11_window_set_opaque_region; + impl_class->set_shadow_width = gdk_x11_window_set_shadow_width; + impl_class->show_window_menu = gdk_x11_window_show_window_menu; ++#ifdef HAVE_OPENGL + impl_class->create_gl_context = gdk_x11_window_create_gl_context; + impl_class->invalidate_for_new_frame = gdk_x11_window_invalidate_for_new_frame; ++#endif + impl_class->get_unscaled_size = gdk_x11_window_get_unscaled_size; + } +diff --git a/gdk/x11/gdkx-autocleanups.h b/gdk/x11/gdkx-autocleanups.h +index edb0ea7dbf..a317d61cca 100644 +--- a/gdk/x11/gdkx-autocleanups.h ++++ b/gdk/x11/gdkx-autocleanups.h +@@ -30,7 +30,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceXI2, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Display, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DisplayManager, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DragContext, g_object_unref) ++#ifdef HAVE_OPENGL + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11GLContext, g_object_unref) ++#endif + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Keymap, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Screen, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Visual, g_object_unref) +diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx.h +index 1f64bccb6d..4db6c18351 100644 +--- a/gdk/x11/gdkx.h ++++ b/gdk/x11/gdkx.h +@@ -43,7 +43,9 @@ + #include + #include + #include ++#ifdef GDK_WITH_OPENGL + #include ++#endif + #include + #include + #include +diff --git a/gdk/x11/meson.build b/gdk/x11/meson.build +index 754ae0a615..0318c83877 100644 +--- a/gdk/x11/meson.build ++++ b/gdk/x11/meson.build +@@ -14,7 +14,6 @@ gdk_x11_sources = files( + 'gdkeventsource.c', + 'gdkeventtranslator.c', + 'gdkgeometry-x11.c', +- 'gdkglcontext-x11.c', + 'gdkkeys-x11.c', + 'gdkmain-x11.c', + 'gdkproperty-x11.c', +@@ -42,7 +41,6 @@ gdk_x11_public_headers = files( + 'gdkx11display.h', + 'gdkx11displaymanager.h', + 'gdkx11dnd.h', +- 'gdkx11glcontext.h', + 'gdkx11keys.h', + 'gdkx11monitor.h', + 'gdkx11property.h', +@@ -53,6 +51,11 @@ gdk_x11_public_headers = files( + 'gdkx11window.h', + ) + ++if opengl_enabled ++ gdk_x11_sources += files('gdkglcontext-x11.c') ++ gdk_x11_public_headers += files('gdkx11glcontext.h') ++endif ++ + install_headers(gdk_x11_public_headers, subdir: 'gtk-3.0/gdk/x11/') + install_headers('gdkx.h', subdir: 'gtk-3.0/gdk/') + +diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c +index 802303ea9f..6439d7745d 100644 +--- a/gtk/gtkglarea.c ++++ b/gtk/gtkglarea.c +@@ -29,7 +29,9 @@ + #include "gtkprivate.h" + #include "gtkrender.h" + ++#ifdef HAVE_OPENGL + #include ++#endif + + /** + * SECTION:gtkglarea +@@ -369,9 +371,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area) + static void + gtk_gl_area_resize (GtkGLArea *area, int width, int height) + { ++#ifdef HAVE_OPENGL + glViewport (0, 0, width, height); ++#endif + } + ++#ifdef HAVE_OPENGL + /* + * Creates all the buffer objects needed for rendering the scene + */ +@@ -483,6 +488,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) + + priv->needs_render = TRUE; + } ++#endif + + /** + * gtk_gl_area_attach_buffers: +@@ -501,6 +507,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) + void + gtk_gl_area_attach_buffers (GtkGLArea *area) + { ++#ifdef HAVE_OPENGL + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + + g_return_if_fail (GTK_IS_GL_AREA (area)); +@@ -533,11 +540,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area) + glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, + GL_RENDERBUFFER, priv->depth_stencil_buffer); + } ++#endif + } + + static void + gtk_gl_area_delete_buffers (GtkGLArea *area) + { ++#ifdef HAVE_OPENGL + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + + if (priv->context == NULL) +@@ -569,6 +578,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area) + glDeleteFramebuffers (1, &priv->frame_buffer); + priv->frame_buffer = 0; + } ++#endif + } + + static void +@@ -679,6 +689,7 @@ gtk_gl_area_draw (GtkWidget *widget, + GtkGLArea *area = GTK_GL_AREA (widget); + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + gboolean unused; ++#ifdef HAVE_OPENGL + int w, h, scale; + GLenum status; + +@@ -736,6 +747,14 @@ gtk_gl_area_draw (GtkWidget *widget, + } + + return TRUE; ++#else ++ if (priv->error != NULL) ++ gtk_gl_area_draw_error_screen (area, ++ cr, ++ gtk_widget_get_allocated_width (widget), ++ gtk_widget_get_allocated_height (widget)); ++ return FALSE; ++#endif + } + + static gboolean +diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c +index 4fd0c3039c..a8e59ed077 100644 +--- a/gtk/inspector/general.c ++++ b/gtk/inspector/general.c +@@ -33,8 +33,10 @@ + + #ifdef GDK_WINDOWING_X11 + #include "x11/gdkx.h" ++#ifdef HAVE_OPENGL + #include + #endif ++#endif + + #ifdef GDK_WINDOWING_WIN32 + #include "win32/gdkwin32.h" +@@ -217,6 +219,7 @@ add_label_row (GtkInspectorGeneral *gen, + gtk_size_group_add_widget (GTK_SIZE_GROUP (gen->priv->labels), label); + } + ++#ifdef HAVE_OPENGL + #ifdef GDK_WINDOWING_X11 + static void + append_glx_extension_row (GtkInspectorGeneral *gen, +@@ -226,6 +229,7 @@ append_glx_extension_row (GtkInspectorGeneral *gen, + add_check_row (gen, GTK_LIST_BOX (gen->priv->gl_box), ext, epoxy_has_glx_extension (dpy, 0, ext), 0); + } + #endif ++#endif + + #ifdef GDK_WINDOWING_WAYLAND + static void +@@ -275,6 +279,7 @@ wayland_get_display (struct wl_display *wl_display) + static void + init_gl (GtkInspectorGeneral *gen) + { ++#ifdef HAVE_OPENGL + #ifdef GDK_WINDOWING_X11 + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + { +@@ -301,6 +306,7 @@ init_gl (GtkInspectorGeneral *gen) + } + else + #endif ++#endif + #ifdef GDK_WINDOWING_WAYLAND + if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())) + { +diff --git a/meson.build b/meson.build +index aed48fc3f6..bfc33af0f6 100644 +--- a/meson.build ++++ b/meson.build +@@ -137,6 +137,7 @@ wayland_enabled = get_option('wayland_backend') + broadway_enabled = get_option('broadway_backend') + quartz_enabled = get_option('quartz_backend') + win32_enabled = get_option('win32_backend') ++opengl_enabled = get_option('opengl') + + os_unix = false + os_linux = false +@@ -430,7 +431,7 @@ pangocairo_dep = dependency('pangocairo', version: cairo_req, + fallback : ['pango', 'libpangocairo_dep']) + pixbuf_dep = dependency('gdk-pixbuf-2.0', version: gdk_pixbuf_req, + fallback : ['gdk-pixbuf', 'gdkpixbuf_dep']) +-epoxy_dep = dependency('epoxy', version: epoxy_req, ++epoxy_dep = dependency('epoxy', version: epoxy_req, required: opengl_enabled, + fallback: ['libepoxy', 'libepoxy_dep']) + atk_dep = dependency('atk', version: atk_req, + fallback : ['atk', 'libatk_dep']) +@@ -476,6 +477,10 @@ if tracker3_enabled + endif + endif + ++if opengl_enabled ++ cdata.set('HAVE_OPENGL', 1) ++endif ++ + if iso_codes_dep.found() + cdata.set_quoted('ISO_CODES_PREFIX', iso_codes_dep.get_variable(pkgconfig: 'prefix')) + else +@@ -912,9 +917,15 @@ else + gio_packages = ['gio-2.0', glib_req] + endif + ++if opengl_enabled ++ epoxy_packages = ['epoxy', epoxy_req] ++else ++ epoxy_packages = [] ++endif ++ + pkgconf.set('GDK_PRIVATE_PACKAGES', + ' '.join(gio_packages + x11_pkgs + wayland_pkgs + cairo_backends + +- ['epoxy', epoxy_req] + cloudproviders_packages + ++ epoxy_packages + cloudproviders_packages + + ['fribidi', fribidi_req])) + + gtk_packages = ' '.join([ +@@ -928,7 +939,7 @@ pkgconf.set('GTK_PACKAGES', gtk_packages) + # Requires.private + pc_gdk_extra_libs += cairo_libs + +-gtk_private_packages = atk_pkgs + wayland_pkgs + ['epoxy', epoxy_req, 'fribidi', fribidi_req] ++gtk_private_packages = atk_pkgs + wayland_pkgs + epoxy_packages + ['fribidi', fribidi_req] + if wayland_enabled or x11_enabled + gtk_private_packages += ['pangoft2'] + endif +diff --git a/meson_options.txt b/meson_options.txt +index 94099aa01e..8bd096896d 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -19,6 +19,8 @@ option('profiler', type: 'boolean', value: false, + description : 'Enable profiler support') + option('tracker3', type: 'boolean', value: false, + description : 'Enable Tracker3 filechooser search') ++option('opengl', type: 'boolean', value: true, ++ description : 'Enable use of GL') + + # Print backends + option('print_backends', type : 'string', value : 'auto', +diff --git a/tests/meson.build b/tests/meson.build +index 586fe2f45e..6ecf317dde 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -5,7 +5,6 @@ gtk_tests = [ + ['scrolling-performance', ['frame-stats.c', 'variable.c']], + ['blur-performance', ['../gtk/gtkcairoblur.c']], + ['flicker'], +- ['gdkgears', ['gtkgears.c']], + ['listmodel'], + ['motion-compression'], + ['styleexamples'], +@@ -54,7 +53,6 @@ gtk_tests = [ + ['testfullscreen'], + ['testgeometry'], + ['testgiconpixbuf'], +- ['testglblending', ['gtkgears.c']], + ['testgmenu'], + ['testgrid'], + ['testgrouping'], +@@ -137,6 +135,13 @@ if x11_enabled + ] + endif + ++if opengl_enabled ++ gtk_tests += [ ++ ['gdkgears', ['gtkgears.c']], ++ ['testglblending', ['gtkgears.c']], ++ ] ++endif ++ + if os_linux + gtk_tests += [['testfontchooserdialog']] + endif +diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c +index 24540e313f..e0f863ab6a 100644 +--- a/testsuite/gtk/objects-finalize.c ++++ b/testsuite/gtk/objects-finalize.c +@@ -116,7 +116,9 @@ main (int argc, char **argv) + all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE && + all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 && + all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER && ++#ifdef HAVE_OPENGL + all_types[i] != GDK_TYPE_X11_GL_CONTEXT && ++#endif + #endif + /* Not allowed to finalize a GdkPixbufLoader without calling gdk_pixbuf_loader_close() */ + all_types[i] != GDK_TYPE_PIXBUF_LOADER && +-- +2.30.2 + diff --git a/meta-gnome/recipes-support/gtk+/gtk+3_3.24.38.bb b/meta-gnome/recipes-support/gtk+/gtk+3_3.24.38.bb new file mode 100644 index 0000000..37fa0a7 --- /dev/null +++ b/meta-gnome/recipes-support/gtk+/gtk+3_3.24.38.bb @@ -0,0 +1,15 @@ +require gtk+3.inc + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ + file://opengl.patch \ + " +SRC_URI[sha256sum] = "ce11decf018b25bdd8505544a4f87242854ec88be054d9ade5f3a20444dd8ee7" + +S = "${WORKDIR}/gtk+-${PV}" + +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ + file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ + file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" diff --git a/meta-gnome/recipes-gnome/gtk4/gtk4_4.6.7.bb b/meta-gnome/recipes-support/gtk+/gtk4_4.12.1.bb similarity index 72% rename from meta-gnome/recipes-gnome/gtk4/gtk4_4.6.7.bb rename to meta-gnome/recipes-support/gtk+/gtk4_4.12.1.bb index c71be23..aa7115b 100644 --- a/meta-gnome/recipes-gnome/gtk4/gtk4_4.6.7.bb +++ b/meta-gnome/recipes-support/gtk+/gtk4_4.12.1.bb @@ -6,25 +6,29 @@ BUGTRACKER = "https://bugzilla.gnome.org/" SECTION = "libs" DEPENDS = " \ - sassc-native \ - glib-2.0 \ - libepoxy \ - graphene \ - cairo \ - pango \ atk \ + cairo \ + fribidi \ + gdk-pixbuf \ + gdk-pixbuf-native \ + gi-docgen \ + glib-2.0 \ + graphene \ + harfbuzz \ jpeg \ + libepoxy \ libpng \ librsvg \ + libxkbcommon \ + pango \ tiff \ - gdk-pixbuf-native gdk-pixbuf \ " LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later" LIC_FILES_CHKSUM = " \ file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ - file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ - file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ + file://gtk/gtk.h;endline=25;md5=61900d77e8d5bc67cf15ad93de9a3490 \ + file://gdk/gdk.h;endline=25;md5=a0fb26c1f6b94e66d148279e192c333f \ file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \ " @@ -33,11 +37,11 @@ MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" UPSTREAM_CHECK_REGEX = "gtk-(?P\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz" SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz" -SRC_URI[sha256sum] = "effd2e7c4b5e2a5c7fad43e0f24adea68baa4092abb0b752caff278e6bb010e8" +SRC_URI[sha256sum] = "b8b61d6cf94fac64bf3a0bfc7af137c9dd2f8360033fdeb0cfe9612b77a99a72" S = "${WORKDIR}/gtk-${PV}" -inherit meson gettext pkgconfig gtk-doc update-alternatives gsettings features_check gobject-introspection +inherit meson gettext pkgconfig gi-docgen update-alternatives gsettings features_check gobject-introspection # TBD: nativesdk # gobject-introspection.bbclass pins introspection off for nativesk. As long as @@ -49,53 +53,36 @@ GSETTINGS_PACKAGE:class-native = "" ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" REQUIRED_DISTRO_FEATURES = "opengl" - +GTKDOC_MESON_OPTION = "documentation" GIR_MESON_ENABLE_FLAG = 'enabled' GIR_MESON_DISABLE_FLAG = 'disabled' -GTKDOC_MESON_OPTION = 'gtk_doc' -EXTRA_OEMESON = " -Dbuild-tests=false" +EXTRA_OEMESON = " -Dbuild-tests=false -Dbuild-testsuite=false -Dbuild-demos=false" -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" +PACKAGECONFIG ??= "gstreamer ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11 vulkan', d)}" PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" PACKAGECONFIG[x11] = "-Dx11-backend=true,-Dx11-backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes xinerama" -PACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native" -PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups" +PACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols virtual/egl virtual/libgles2 wayland-native" +PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=enabled,-Dcloudproviders=disabled,libcloudproviders" +PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups,cups" PACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord" +PACKAGECONFIG[iso-codes] = ",,iso-codes,iso-codes" +PACKAGECONFIG[ffmpeg] = "-Dmedia-ffmpeg=enabled,-Dmedia-ffmpeg=disabled,ffmpeg" # gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad" -PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker" +PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker,tracker-miners" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled, vulkan-loader vulkan-headers shaderc-native" - -do_compile:prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs" -} - - -PACKAGES =+ "${PN}-demo" LIBV = "4.0.0" -FILES:${PN}-demo = " \ - ${datadir}/applications/org.gtk.Demo4.desktop \ - ${datadir}/applications/org.gtk.IconBrowser4.desktop \ - ${datadir}/applications/org.gtk.WidgetFactory4.desktop \ - ${datadir}/icons/hicolor/*/apps/org.gtk.Demo4*.* \ - ${datadir}/icons/hicolor/*/apps/org.gtk.IconBrowser4*.* \ - ${datadir}/icons/hicolor/*/apps/org.gtk.WidgetFactory4*.* \ - ${bindir}/gtk4-demo \ - ${bindir}/gtk4-demo-application \ - ${bindir}/gtk4-icon-browser \ - ${bindir}/gtk4-widget-factory \ -" - FILES:${PN}:append = " \ ${datadir}/glib-2.0/schemas/ \ ${datadir}/gtk-4.0/emoji/ \ ${datadir}/metainfo/ \ ${datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.* \ - ${libdir}/gtk-4.0/${LIBV}/printbackends \ + ${libdir}/gtk-4.0/${LIBV}/media \ ${bindir}/gtk4-update-icon-cache \ ${bindir}/gtk4-launch \ " @@ -132,7 +119,7 @@ PACKAGES_DYNAMIC += "^gtk4-printbackend-.*" python populate_packages:prepend () { import os.path - gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}') + gtk_libdir = d.expand('${libdir}/gtk-4.0/${LIBV}') printmodules_root = os.path.join(gtk_libdir, 'printbackends'); do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk4-printbackend-%s', 'GTK printbackend module for %s') diff --git a/meta-gnome/recipes-support/icu/icu/0001-Disable-LDFLAGSICUDT-for-Linux.patch b/meta-gnome/recipes-support/icu/icu/0001-Disable-LDFLAGSICUDT-for-Linux.patch new file mode 100644 index 0000000..2968d57 --- /dev/null +++ b/meta-gnome/recipes-support/icu/icu/0001-Disable-LDFLAGSICUDT-for-Linux.patch @@ -0,0 +1,28 @@ +From 0c82d6aa02c08e41b13c83b14782bd7024e25d59 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Feb 2014 21:06:42 +0000 +Subject: [PATCH] Disable LDFLAGSICUDT for Linux + +Upstream-Status: Inappropriate [ OE Configuration ] + +Signed-off-by: Khem Raj +--- + source/config/mh-linux | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config/mh-linux b/config/mh-linux +index 366f0cc..2689aab 100644 +--- a/config/mh-linux ++++ b/config/mh-linux +@@ -21,7 +21,7 @@ LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN + LD_RPATH_PRE = -Wl,-rpath, + + ## These are the library specific LDFLAGS +-LDFLAGSICUDT=-nodefaultlibs -nostdlib ++# LDFLAGSICUDT=-nodefaultlibs -nostdlib + + ## Compiler switch to embed a library name + # The initial tab in the next line is to prevent icu-config from reading it. +-- +1.7.10.4 + diff --git a/meta-gnome/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch b/meta-gnome/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch new file mode 100644 index 0000000..578517b --- /dev/null +++ b/meta-gnome/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch @@ -0,0 +1,28 @@ +From e3c25af4b40d64f098e7b8ae5a91fdc3c90163c4 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 8 May 2019 14:42:30 +0900 +Subject: [PATCH] icu: Added armeb support. + +Make icu support arm32 BE. + +Upstream-Status: Pending + +Signed-off-by: Lei Maohui + +--- + i18n/double-conversion-utils.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/source/i18n/double-conversion-utils.h b/source/i18n/double-conversion-utils.h +index 7f23e0a..7f89094 100644 +--- a/i18n/double-conversion-utils.h ++++ b/i18n/double-conversion-utils.h +@@ -115,7 +115,7 @@ int main(int argc, char** argv) { + // + // If it prints "correct" then the architecture should be here, in the "correct" section. + #if defined(_M_X64) || defined(__x86_64__) || \ +- defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ ++ defined(__arm__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ + defined(__hppa__) || defined(__ia64__) || \ + defined(__mips__) || \ + defined(__loongarch__) || \ diff --git a/meta-gnome/recipes-support/icu/icu/filter.json b/meta-gnome/recipes-support/icu/icu/filter.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/meta-gnome/recipes-support/icu/icu/filter.json @@ -0,0 +1,2 @@ +{ +} diff --git a/meta-gnome/recipes-support/icu/icu/fix-install-manx.patch b/meta-gnome/recipes-support/icu/icu/fix-install-manx.patch new file mode 100644 index 0000000..925b064 --- /dev/null +++ b/meta-gnome/recipes-support/icu/icu/fix-install-manx.patch @@ -0,0 +1,54 @@ +From a6ddabc8cadb76bfe2d2e374a6702442cfe51cce Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Fri, 9 Oct 2015 17:50:41 +0100 +Subject: [PATCH] icu: fix install race + +The generic recursive target calls target-local so also adding it to the +dependency list results in races due to install-local being executed twice in +parallel. For example, install-manx can fail if the two install processes race +and one process tries to chown a file that the other process has just deleted. + +Also install-manx should be a phony target, and for clarity use $^ instead of $? +in the install command. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +--- + source/Makefile.in | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index be9435b..ada20d7 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -77,7 +77,7 @@ EXTRA_DATA = + + ## List of phony targets + .PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls \ +-install-recursive clean clean-local clean-recursive distclean \ ++install-recursive install-manx clean clean-local clean-recursive distclean \ + distclean-local distclean-recursive doc dist dist-local dist-recursive \ + check check-local check-recursive clean-recursive-with-twist install-icu \ + doc install-doc tests icu4j-data icu4j-data-install update-windows-makefiles xcheck-local xcheck-recursive xperf xcheck xperf-recursive \ +@@ -88,9 +88,9 @@ check-exhaustive check-exhaustive-local check-exhaustive-recursive releaseDist + + ## List of standard targets + all: all-local all-recursive +-install: install-recursive install-local ++install: install-recursive + clean: clean-recursive-with-twist clean-local +-distclean : distclean-recursive distclean-local ++distclean : distclean-recursive + dist: dist-recursive + check: all check-recursive + check-recursive: all +@@ -357,7 +357,7 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h + install-manx: $(MANX_FILES) + $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION) + ifneq ($(MANX_FILES),) +- $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION) ++ $(INSTALL_DATA) $^ $(DESTDIR)$(mandir)/man$(SECTION) + endif + + config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in diff --git a/meta-gnome/recipes-support/icu/icu_73-2.bb b/meta-gnome/recipes-support/icu/icu_73-2.bb new file mode 100644 index 0000000..7c59f8b --- /dev/null +++ b/meta-gnome/recipes-support/icu/icu_73-2.bb @@ -0,0 +1,149 @@ +SUMMARY = "International Component for Unicode libraries" +DESCRIPTION = "The International Component for Unicode (ICU) is a mature, \ +portable set of C/C++ and Java libraries for Unicode support, software \ +internationalization (I18N) and globalization (G11N), giving applications the \ +same results on all platforms." +HOMEPAGE = "http://site.icu-project.org/" + +LICENSE = "ICU" +DEPENDS = "icu-native autoconf-archive-native" + +CVE_PRODUCT = "international_components_for_unicode" + +S = "${WORKDIR}/icu/source" +SPDX_S = "${WORKDIR}/icu" +STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}" + +ICU_MAJOR_VER = "${@d.getVar('PV').split('-')[0]}" + +inherit autotools pkgconfig github-releases + +# ICU needs the native build directory as an argument to its --with-cross-build option when +# cross-compiling. Taken the situation that different builds may share a common sstate-cache +# into consideration, the native build directory needs to be staged. +EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config" +EXTRA_OECONF:class-native = "--disable-icu-config" +EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config" + +EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}" +TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${PV}\\""', '', d)}" + +ASNEEDED = "" + +do_compile:prepend:class-target () { + # Make sure certain build host references do not end up being compiled + # in the image. This only affects libicutu and icu-dbg + sed \ + -e 's,DU_BUILD=,DU_BUILD_unused=,g' \ + -e '/^CPPFLAGS.*/ s,--sysroot=${STAGING_DIR_TARGET},,g' \ + -i ${B}/tools/toolutil/Makefile +} + +PREPROCESS_RELOCATE_DIRS = "${datadir}/${BPN}/${PV}" +do_install:append:class-native() { + mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config + cp -r ${B}/config/icucross.mk ${D}/${STAGING_ICU_DIR_NATIVE}/config + cp -r ${B}/config/icucross.inc ${D}/${STAGING_ICU_DIR_NATIVE}/config + cp -r ${B}/lib ${D}/${STAGING_ICU_DIR_NATIVE} + cp -r ${B}/bin ${D}/${STAGING_ICU_DIR_NATIVE} + cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE} +} + +do_install:append:class-target() { + # The native pkgdata can not generate the correct data file. + # Use icupkg to re-generate it. + if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then + rm -f ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat + icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat + fi + + # Remove build host references... + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${HOSTTOOLS_DIR}/::g' \ + ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/Makefile.inc \ + ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/pkgdata.inc +} + +PACKAGES =+ "libicudata libicuuc libicui18n libicutu libicuio" + +FILES:${PN}-dev += "${libdir}/${BPN}/" + +FILES:libicudata = "${libdir}/libicudata.so.*" +FILES:libicuuc = "${libdir}/libicuuc.so.*" +FILES:libicui18n = "${libdir}/libicui18n.so.*" +FILES:libicutu = "${libdir}/libicutu.so.*" +FILES:libicuio = "${libdir}/libicuio.so.*" + +BBCLASSEXTEND = "native nativesdk" + +LIC_FILES_CHKSUM = "file://../LICENSE;md5=80c2cf39ad8ae12b9b9482a1737c6650" + +def icu_download_version(d): + pvsplit = d.getVar('PV').split('-') + return pvsplit[0] + "_" + pvsplit[1] + +def icu_download_folder(d): + pvsplit = d.getVar('PV').split('-') + return pvsplit[0] + "-" + pvsplit[1] + +def icu_install_folder(d): + pvsplit = d.getVar('PV').split('-') + return pvsplit[0] + "." + pvsplit[1] + +ICU_PV = "${@icu_download_version(d)}" +ICU_FOLDER = "${@icu_download_folder(d)}" + +# http://errors.yoctoproject.org/Errors/Details/20486/ +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" + +BASE_SRC_URI = "${GITHUB_BASE_URI}/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-src.tgz" +DATA_SRC_URI = "${GITHUB_BASE_URI}/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-data.zip" +SRC_URI = "${BASE_SRC_URI};name=code \ + ${DATA_SRC_URI};name=data \ + file://filter.json \ + file://fix-install-manx.patch \ + file://0001-icu-Added-armeb-support.patch \ + " + +SRC_URI:append:class-target = "\ + file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \ + " +SRC_URI[code.sha256sum] = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1" +SRC_URI[data.sha256sum] = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701" + +UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P(?!.+rc).+)" +GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases" + +EXTRA_OECONF:append:libc-musl = " ac_cv_func_strtod_l=no" + +PACKAGECONFIG ?= "" +PACKAGECONFIG[make-icudata] = ",,," + +do_make_icudata:class-target () { + ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)} + cd ${S} + rm -rf data + cp -a ${WORKDIR}/data . + AR='${BUILD_AR}' \ + CC='${BUILD_CC}' \ + CPP='${BUILD_CPP}' \ + CXX='${BUILD_CXX}' \ + RANLIB='${BUILD_RANLIB}' \ + CFLAGS='${BUILD_CFLAGS}' \ + CPPFLAGS='${BUILD_CPPFLAGS}' \ + CXXFLAGS='${BUILD_CXXFLAGS}' \ + LDFLAGS='${BUILD_LDFLAGS}' \ + ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \ + ./runConfigureICU Linux --with-data-packaging=archive + oe_runmake + install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat +} + +do_make_icudata() { + : +} + +addtask make_icudata before do_configure after do_patch do_prepare_recipe_sysroot diff --git a/meta-gnome/recipes-support/libei/libei_1.1.0.bb b/meta-gnome/recipes-support/libei/libei_1.1.0.bb new file mode 100644 index 0000000..1727ef9 --- /dev/null +++ b/meta-gnome/recipes-support/libei/libei_1.1.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "libei is a library for Emulated Input, primarily aimed at the Wayland stack." +HOMEPAGE = "https://gitlab.freedesktop.org/libinput/libei" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=a98fa76460f96f41696611d6f07e8d49" + +DEPENDS = " \ + libxkbcommon \ + libevdev \ + libxslt-native \ + python3-attrs-native \ + python3-jinja2-native \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'basu', d)} \ +" + +SRC_URI = "git://gitlab.freedesktop.org/libinput/libei.git;protocol=https;branch=main" + +S = "${WORKDIR}/git" +SRCREV = "82cdbc9129a0e2c255fcee6bcaa7abed5578ae14" + +inherit meson pkgconfig + +EXTRA_OEMESON = "-Dtests=disabled" + diff --git a/meta-gnome/recipes-support/libnma/libnma_1.8.38.bb b/meta-gnome/recipes-support/libnma/libnma_1.10.6.bb similarity index 90% rename from meta-gnome/recipes-support/libnma/libnma_1.8.38.bb rename to meta-gnome/recipes-support/libnma/libnma_1.10.6.bb index 75c704b..bff9a33 100644 --- a/meta-gnome/recipes-support/libnma/libnma_1.8.38.bb +++ b/meta-gnome/recipes-support/libnma/libnma_1.10.6.bb @@ -7,10 +7,10 @@ DEPENDS = "glib-2.0 gtk+3 gtk4 networkmanager" GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gobject-introspection gtk-doc gettext vala features_check -REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG','gcr','x11','',d)}" +REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG','gcr','x11','',d)} opengl" ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" -SRC_URI[archive.sha256sum] = "5ed93eae18456ff5a8a4f408178c1ee198dc8d3a46c65f9075b101916e64e8b4" +SRC_URI[archive.sha256sum] = "53a6fb2b190ad37c5986caed3e98bede7c3c602399ee4f93c8fc054303d76dab" PACKAGECONFIG ?= "gcr iso_codes mobile_broadband_provider_info" PACKAGECONFIG[gcr] = "-Dgcr=true,-Dgcr=false,gcr" diff --git a/meta-gnome/recipes-support/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch b/meta-gnome/recipes-support/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch new file mode 100644 index 0000000..da8ce68 --- /dev/null +++ b/meta-gnome/recipes-support/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch @@ -0,0 +1,35 @@ +From dc208bafc57c1ccaa0ca260f99c8b4c976271ebc Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Sat, 16 Sep 2023 14:02:57 +0200 +Subject: [PATCH] xb-self-test.c: hardcode G_TEST_SRCDIR + +This avoids: + libxmlb-0.3.14-r0 do_package_qa: QA Issue: File + /usr/libexec/installed-tests/libxmlb/xb-self-test in package libxmlb-ptest + contains reference to TMPDIR [buildpaths] + +and also fixes the runtime for the ptest. + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Markus Volk +--- + src/xb-self-test.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/xb-self-test.c b/src/xb-self-test.c +index 47d9728..8b3dd0e 100644 +--- a/src/xb-self-test.c ++++ b/src/xb-self-test.c +@@ -2870,7 +2870,7 @@ xb_speed_func(void) + int + main(int argc, char **argv) + { +- g_setenv("G_TEST_SRCDIR", SRCDIR, FALSE); ++ g_setenv("G_TEST_SRCDIR", "/usr/libexec/installed-tests/libxmlb", FALSE); + + g_test_init(&argc, &argv, NULL); + +-- +2.41.0 + diff --git a/meta-gnome/recipes-support/libxmlb/libxmlb/run-ptest b/meta-gnome/recipes-support/libxmlb/libxmlb/run-ptest new file mode 100644 index 0000000..6d0bb95 --- /dev/null +++ b/meta-gnome/recipes-support/libxmlb/libxmlb/run-ptest @@ -0,0 +1,3 @@ +#! /bin/sh + +gnome-desktop-testing-runner libxmlb diff --git a/meta-gnome/recipes-support/libxmlb/libxmlb_0.3.14.bb b/meta-gnome/recipes-support/libxmlb/libxmlb_0.3.14.bb new file mode 100644 index 0000000..1d3b0de --- /dev/null +++ b/meta-gnome/recipes-support/libxmlb/libxmlb_0.3.14.bb @@ -0,0 +1,25 @@ +SUMMARY = "A library to help create and query binary XML blobs" +HOMEPAGE = "https://github.com/hughsie/libxmlb" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742" + +SRC_URI = " \ + git://github.com/hughsie/libxmlb.git;branch=main;protocol=https \ + file://0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch \ + file://run-ptest \ +" +SRCREV = "aa577b276adc66564f5777f9a522ca3bf0bfa65e" +S = "${WORKDIR}/git" + +DEPENDS = "glib-2.0 xz zstd" + +inherit gobject-introspection gtk-doc meson ptest-gnome lib_package pkgconfig + +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false" + +GTKDOC_MESON_OPTION = "gtkdoc" + +FILES:${PN} += "${datadir}" + +BBCLASSEXTEND = "native" diff --git a/meta-gnome/recipes-support/mozjs/files/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch b/meta-gnome/recipes-support/mozjs/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch similarity index 93% rename from meta-gnome/recipes-support/mozjs/files/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch rename to meta-gnome/recipes-support/mozjs/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch index e68ef1a..fe905fe 100644 --- a/meta-gnome/recipes-support/mozjs/files/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch +++ b/meta-gnome/recipes-support/mozjs/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch @@ -1,4 +1,4 @@ -From 69ed1f6a4b0199a8c546d7cf4e96b40c13c53e91 Mon Sep 17 00:00:00 2001 +From c860dcbe63b0e393c95bfb0131238f91aaac11d3 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 7 Oct 2021 12:44:18 +0200 Subject: [PATCH] build: do not use autoconf's config.sub to 'canonicalize' diff --git a/meta-gnome/recipes-support/mozjs/files/0009-moz.configure-do-not-look-for-llvm-dump.patch b/meta-gnome/recipes-support/mozjs/0002-moz.configure-do-not-look-for-llvm-objdump.patch similarity index 63% rename from meta-gnome/recipes-support/mozjs/files/0009-moz.configure-do-not-look-for-llvm-dump.patch rename to meta-gnome/recipes-support/mozjs/0002-moz.configure-do-not-look-for-llvm-objdump.patch index f583fee..b3d3c1f 100644 --- a/meta-gnome/recipes-support/mozjs/files/0009-moz.configure-do-not-look-for-llvm-dump.patch +++ b/meta-gnome/recipes-support/mozjs/0002-moz.configure-do-not-look-for-llvm-objdump.patch @@ -1,17 +1,22 @@ -From bc8a4a04aec1c52ffd28b17ef593f61ef2d84e0d Mon Sep 17 00:00:00 2001 -From: Bruce Leidl -Date: Thu, 22 Sep 2022 19:57:38 -0400 -Subject: [PATCH] moz.configure do not look for llvm-dump +From 0133ddb86eb6e0741e02b0032c41468db6438530 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 1 Oct 2021 13:01:10 +0200 +Subject: [PATCH] moz.configure: do not look for llvm-objdump +This avoid dragging in a dependency that isn't even needed +for js builds. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin --- moz.configure | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/moz.configure b/moz.configure -index 8b74afbabe..d43afbaf2b 100755 +index fc66b520d0..15de9a2ee0 100755 --- a/moz.configure +++ b/moz.configure -@@ -785,15 +785,15 @@ def llvm_tool(name): +@@ -785,15 +785,15 @@ return llvm_tool @@ -36,3 +41,4 @@ index 8b74afbabe..d43afbaf2b 100755 @depends(llvm_tool("llvm-readelf"), toolchain_prefix) + diff --git a/meta-gnome/recipes-support/mozjs/files/0001-Cargo.toml-do-not-abort-on-panic.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-Cargo.toml-do-not-abort-on-panic.patch similarity index 92% rename from meta-gnome/recipes-support/mozjs/files/0001-Cargo.toml-do-not-abort-on-panic.patch rename to meta-gnome/recipes-support/mozjs/mozjs-102/0001-Cargo.toml-do-not-abort-on-panic.patch index d705673..0dd9361 100644 --- a/meta-gnome/recipes-support/mozjs/files/0001-Cargo.toml-do-not-abort-on-panic.patch +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-Cargo.toml-do-not-abort-on-panic.patch @@ -1,4 +1,4 @@ -From c6e7e983a82b86c08a52bfd11056c1d7e12a3405 Mon Sep 17 00:00:00 2001 +From bb46a8a729cc4d66ad36db40c17e36a5111f19c3 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 1 Oct 2021 13:00:24 +0200 Subject: [PATCH] Cargo.toml: do not abort on panic diff --git a/meta-gnome/recipes-support/mozjs/mozjs-102/0001-add-arm-to-list-of-mozinline.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-add-arm-to-list-of-mozinline.patch new file mode 100644 index 0000000..02f5e5c --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-add-arm-to-list-of-mozinline.patch @@ -0,0 +1,25 @@ +Backport patch from firefox bugzilla to fix compile error for qemuarm with +some armv7ve tunes such as 'armv7vethf' and 'armv7vet-vfpv3d16': + +| /path/to/build/tmp/work/armv7vet2hf-vfp-poky-linux-gnueabi/mozjs-102/102.5.0-r0/build/js/src/jit/AtomicOperationsGenerated.h:240:17: + error: 'asm' operand has impossible constraints +| 240 | asm volatile ( +| | ^~~ + +Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1761665] + +Signed-off-by: Kai Kang + +diff --git a/js/src/jit/GenerateAtomicOperations.py b/js/src/jit/GenerateAtomicOperations.py +index d8a38a0..65f91ab 100644 +--- a/js/src/jit/GenerateAtomicOperations.py ++++ b/js/src/jit/GenerateAtomicOperations.py +@@ -856,7 +856,7 @@ def generate_atomics_header(c_out): + + # Work around a GCC issue on 32-bit x86 by adding MOZ_NEVER_INLINE. + # See bug 1756347. +- if is_gcc and cpu_arch == "x86": ++ if is_gcc and cpu_arch in ("x86", "arm"): + contents = contents.replace("INLINE_ATTR", "MOZ_NEVER_INLINE inline") + else: + contents = contents.replace("INLINE_ATTR", "inline") diff --git a/meta-gnome/recipes-support/mozjs/mozjs-102/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch new file mode 100644 index 0000000..fe905fe --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch @@ -0,0 +1,29 @@ +From c860dcbe63b0e393c95bfb0131238f91aaac11d3 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 7 Oct 2021 12:44:18 +0200 +Subject: [PATCH] build: do not use autoconf's config.sub to 'canonicalize' + names + +The outcome is that processed names no longer match our custom rust +target definitions, and the build fails. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + build/moz.configure/init.configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index 81f500a0b7..0b7a2ff60f 100644 +--- a/build/moz.configure/init.configure ++++ b/build/moz.configure/init.configure +@@ -585,7 +585,7 @@ def help_host_target(help, host, target): + + def config_sub(shell, triplet): + config_sub = os.path.join(os.path.dirname(__file__), "..", "autoconf", "config.sub") +- return check_cmd_output(shell, config_sub, triplet).strip() ++ return triplet + + + @depends("--host", shell) diff --git a/meta-gnome/recipes-support/mozjs/files/0001-rewrite-cargo-host-linker-in-python3.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-rewrite-cargo-host-linker-in-python3.patch similarity index 97% rename from meta-gnome/recipes-support/mozjs/files/0001-rewrite-cargo-host-linker-in-python3.patch rename to meta-gnome/recipes-support/mozjs/mozjs-102/0001-rewrite-cargo-host-linker-in-python3.patch index 2e81b83..73bcffe 100644 --- a/meta-gnome/recipes-support/mozjs/files/0001-rewrite-cargo-host-linker-in-python3.patch +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-rewrite-cargo-host-linker-in-python3.patch @@ -1,4 +1,4 @@ -From ceb1a6e510b51196005f3df32f12d67a3357a0a1 Mon Sep 17 00:00:00 2001 +From 8e318c4e7e732327dabf51027860de45b6fb731e Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Thu, 18 Nov 2021 07:16:39 +0000 Subject: [PATCH] Rewrite cargo-host-linker in python3 diff --git a/meta-gnome/recipes-support/mozjs/files/0001-util.configure-fix-one-occasionally-reproduced-confi.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-util.configure-fix-one-occasionally-reproduced-confi.patch similarity index 96% rename from meta-gnome/recipes-support/mozjs/files/0001-util.configure-fix-one-occasionally-reproduced-confi.patch rename to meta-gnome/recipes-support/mozjs/mozjs-102/0001-util.configure-fix-one-occasionally-reproduced-confi.patch index b56dda3..d732fda 100644 --- a/meta-gnome/recipes-support/mozjs/files/0001-util.configure-fix-one-occasionally-reproduced-confi.patch +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/0001-util.configure-fix-one-occasionally-reproduced-confi.patch @@ -1,4 +1,4 @@ -From d31fd9daf96809c352c2d701e90665d2f7fe7ffe Mon Sep 17 00:00:00 2001 +From 2a6f66f39b4e623428b6d282bd4cb72dde67c1a6 Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Thu, 11 Nov 2021 16:05:54 +0800 Subject: [PATCH] util.configure: fix one occasionally reproduced configure diff --git a/meta-gnome/recipes-support/mozjs/mozjs-102/0002-moz.configure-do-not-look-for-llvm-objdump.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/0002-moz.configure-do-not-look-for-llvm-objdump.patch new file mode 100644 index 0000000..b3d3c1f --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/0002-moz.configure-do-not-look-for-llvm-objdump.patch @@ -0,0 +1,44 @@ +From 0133ddb86eb6e0741e02b0032c41468db6438530 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 1 Oct 2021 13:01:10 +0200 +Subject: [PATCH] moz.configure: do not look for llvm-objdump + +This avoid dragging in a dependency that isn't even needed +for js builds. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + moz.configure | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/moz.configure b/moz.configure +index fc66b520d0..15de9a2ee0 100755 +--- a/moz.configure ++++ b/moz.configure +@@ -785,15 +785,15 @@ + return llvm_tool + + +-llvm_objdump = check_prog( +- "LLVM_OBJDUMP", +- llvm_tool("llvm-objdump"), +- what="llvm-objdump", +- when="--enable-compile-environment", +- paths=clang_search_path, +-) +- +-add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump) ++#llvm_objdump = check_prog( ++# "LLVM_OBJDUMP", ++# llvm_tool("llvm-objdump"), ++# what="llvm-objdump", ++# when="--enable-compile-environment", ++# paths=clang_search_path, ++#) ++# ++#add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump) + + + @depends(llvm_tool("llvm-readelf"), toolchain_prefix) + diff --git a/meta-gnome/recipes-support/mozjs/files/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch similarity index 95% rename from meta-gnome/recipes-support/mozjs/files/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch rename to meta-gnome/recipes-support/mozjs/mozjs-102/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch index db2abd5..202f126 100644 --- a/meta-gnome/recipes-support/mozjs/files/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch @@ -1,11 +1,11 @@ -From 129835dbbee86723b3778027026f8df94f40c671 Mon Sep 17 00:00:00 2001 +From 33ff25e2b126dd4135006139641d8b7f6e4da200 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 1 Oct 2021 13:02:17 +0200 Subject: [PATCH] rust.configure: do not try to find a suitable upstream target OE is using custom targets and so this is bound to fail. -Upstream-Status: Inapppropriate [oe-core specific] +Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin --- diff --git a/meta-gnome/recipes-support/mozjs/files/0004-use-asm-sgidefs.h.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/0004-use-asm-sgidefs.h.patch similarity index 94% rename from meta-gnome/recipes-support/mozjs/files/0004-use-asm-sgidefs.h.patch rename to meta-gnome/recipes-support/mozjs/mozjs-102/0004-use-asm-sgidefs.h.patch index 45d64be..ff28654 100644 --- a/meta-gnome/recipes-support/mozjs/files/0004-use-asm-sgidefs.h.patch +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/0004-use-asm-sgidefs.h.patch @@ -1,4 +1,4 @@ -From 25b9913133c004a263a4951b391046ba80746017 Mon Sep 17 00:00:00 2001 +From 0ec73937b01869a701ed9b60a6a84469e035ded4 Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Sat, 30 Apr 2016 15:29:06 -0700 Subject: [PATCH] use diff --git a/meta-gnome/recipes-support/mozjs/files/fix-musl-build.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/fix-musl-build.patch similarity index 53% rename from meta-gnome/recipes-support/mozjs/files/fix-musl-build.patch rename to meta-gnome/recipes-support/mozjs/mozjs-102/fix-musl-build.patch index c8ff37e..6905282 100644 --- a/meta-gnome/recipes-support/mozjs/files/fix-musl-build.patch +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/fix-musl-build.patch @@ -1,11 +1,15 @@ -From 3f1b8cef1ba7132d3ffdcf884d799be110eb0636 Mon Sep 17 00:00:00 2001 -From: OpenEmbedded -Date: Thu, 22 Sep 2022 23:20:43 +0000 -Subject: [PATCH] Upstream: No Reason: mozjs60 miscompiles on musl if built - with HAVE_THREAD_TLS_KEYWORD: - https://github.com/void-linux/void-packages/issues/2598 +From 1110483c6c06adf2d03ed9154a8957defc175c80 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 20 Oct 2021 16:21:14 -0700 +Subject: [PATCH] mozjs: Fix musl miscompiles with HAVE_THREAD_TLS_KEYWORD + +Upstream: No +Reason: mozjs60 miscompiles on musl if built with HAVE_THREAD_TLS_KEYWORD: +https://github.com/void-linux/void-packages/issues/2598 --- +Upstream-Status: Pending + js/src/old-configure.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-gnome/recipes-support/mozjs/mozjs-102/musl-disable-stackwalk.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/musl-disable-stackwalk.patch new file mode 100644 index 0000000..a3ba469 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/musl-disable-stackwalk.patch @@ -0,0 +1,18 @@ +Musl does not have stack unwinder like glibc therefore +we can not assume that its always available on musl, we +do need to check for target environment as well which +could be musl or glibc. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- a/mozglue/misc/StackWalk.cpp ++++ b/mozglue/misc/StackWalk.cpp +@@ -44,7 +44,7 @@ using namespace mozilla; + # define MOZ_STACKWALK_SUPPORTS_MACOSX 0 + #endif + +-#if (defined(linux) && \ ++#if (defined(linux) && defined(__GLIBC__) && \ + ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \ + defined(HAVE__UNWIND_BACKTRACE))) + # define MOZ_STACKWALK_SUPPORTS_LINUX 1 diff --git a/meta-gnome/recipes-support/mozjs/files/riscv32.patch b/meta-gnome/recipes-support/mozjs/mozjs-102/riscv32.patch similarity index 96% rename from meta-gnome/recipes-support/mozjs/files/riscv32.patch rename to meta-gnome/recipes-support/mozjs/mozjs-102/riscv32.patch index e738bd8..a6a0a9e 100644 --- a/meta-gnome/recipes-support/mozjs/files/riscv32.patch +++ b/meta-gnome/recipes-support/mozjs/mozjs-102/riscv32.patch @@ -1,6 +1,6 @@ -From 5b595a31c53f9a4e660be9f1c28520d89c1386db Mon Sep 17 00:00:00 2001 +From 81385fe53ffde5e1636e9ace0736d914da8dbc0f Mon Sep 17 00:00:00 2001 From: Khem Raj -Date: Thu, 22 Sep 2022 23:20:45 +0000 +Date: Sun, 24 Oct 2021 22:32:50 -0700 Subject: [PATCH] Add RISCV32 support Upstream-Status: Pending diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch new file mode 100644 index 0000000..d0841fd --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch @@ -0,0 +1,32 @@ +From c7ab27681ff5e0ac9e8ad36e5a9cb33eeffcbd56 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 1 Oct 2021 13:00:24 +0200 +Subject: [PATCH] Cargo.toml: do not abort on panic + +OE's rust is configured to unwind, and this setting clashes with it/ + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + Cargo.toml | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/Cargo.toml b/Cargo.toml +index a2718b2f35..4e231c30e8 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -59,13 +59,11 @@ opt-level = 1 + rpath = false + lto = false + debug-assertions = true +-panic = "abort" + + [profile.release] + opt-level = 2 + rpath = false + debug-assertions = false +-panic = "abort" + + # Optimize build dependencies, because bindgen and proc macros / style + # compilation take more to run than to build otherwise. diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch new file mode 100644 index 0000000..39cf76a --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch @@ -0,0 +1,32 @@ +From 194361a4dacb9540c0f4660c58a54f3c6bd91067 Mon Sep 17 00:00:00 2001 +From: Kai Kang +Date: Mon, 18 Sep 2023 19:32:57 +0000 +Subject: [PATCH] Backport patch from firefox bugzilla to fix compile error for + qemuarm with some armv7ve tunes such as 'armv7vethf' and 'armv7vet-vfpv3d16': + +| /path/to/build/tmp/work/armv7vet2hf-vfp-poky-linux-gnueabi/mozjs-102/102.5.0-r0/build/js/src/jit/AtomicOperationsGenerated.h:240:17: + error: 'asm' operand has impossible constraints +| 240 | asm volatile ( +| | ^~~ + +Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1761665] + +Signed-off-by: Kai Kang + +--- + js/src/jit/GenerateAtomicOperations.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/js/src/jit/GenerateAtomicOperations.py b/js/src/jit/GenerateAtomicOperations.py +index 24b5a191cf..e41948c5af 100644 +--- a/js/src/jit/GenerateAtomicOperations.py ++++ b/js/src/jit/GenerateAtomicOperations.py +@@ -860,7 +860,7 @@ def generate_atomics_header(c_out): + + # Work around a GCC issue on 32-bit x86 by adding MOZ_NEVER_INLINE. + # See bug 1756347. +- if is_gcc and cpu_arch == "x86": ++ if is_gcc and cpu_arch in ("x86", "arm"): + contents = contents.replace("INLINE_ATTR", "MOZ_NEVER_INLINE inline") + else: + contents = contents.replace("INLINE_ATTR", "inline") diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/0001-fix-init-configure.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-fix-init-configure.patch new file mode 100644 index 0000000..dfab264 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-fix-init-configure.patch @@ -0,0 +1,53 @@ +From 7a9f989f9ac74b6414982af8ef27848394a8edf8 Mon Sep 17 00:00:00 2001 +From: Bruce Leidl +Date: Mon, 18 Sep 2023 15:28:14 -0400 +Subject: [PATCH] fix init configure + +--- + build/moz.configure/init.configure | 31 +++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index 2ac40d3d39..dc8a605d06 100644 +--- a/build/moz.configure/init.configure ++++ b/build/moz.configure/init.configure +@@ -650,23 +650,24 @@ def help_host_target(help, host, target): + + def config_sub(shell, triplet): + config_sub = os.path.join(os.path.dirname(__file__), "..", "autoconf", "config.sub") ++ return triplet + # Config.sub doesn't like the *-windows-msvc/*-windows-gnu triplets, so + # munge those before and after calling config.sub. +- suffix = None +- munging = { +- "-windows-msvc": "-mingw32", +- "-windows-gnu": "-mingw32", +- } +- for check_suffix, replacement in munging.items(): +- if triplet.endswith(check_suffix): +- suffix = check_suffix +- triplet = triplet[: -len(suffix)] + replacement +- break +- result = check_cmd_output(shell, config_sub, triplet).strip() +- if suffix: +- assert result.endswith(replacement) +- result = result[: -len(replacement)] + suffix +- return result ++ #suffix = None ++ #munging = { ++ # "-windows-msvc": "-mingw32", ++ # "-windows-gnu": "-mingw32", ++ #} ++ #for check_suffix, replacement in munging.items(): ++ # if triplet.endswith(check_suffix): ++ # suffix = check_suffix ++ # triplet = triplet[: -len(suffix)] + replacement ++ # break ++ #result = check_cmd_output(shell, config_sub, triplet).strip() ++ #if suffix: ++ # assert result.endswith(replacement) ++ # result = result[: -len(replacement)] + suffix ++ #return result + + + @depends("--host", shell) diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch new file mode 100644 index 0000000..970a1a4 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch @@ -0,0 +1,54 @@ +From 5936d1a6a11b60320ce496f5937090b770292af4 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 18 Nov 2021 07:16:39 +0000 +Subject: [PATCH] Rewrite cargo-host-linker in python3 + +Mozjs compile failed with this failure: +/bin/sh: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /build/tmp-glibc/work/corei7-64-wrs-linux/mozjs/91.1.0-r0/recipe-sysroot-native/usr/lib/libtinfo.so.5) + +Root Cause: +cargo-host-linker has /bin/sh as it's interpreter, but cargo run the cmd +with LD_LIBRARY_PATH set to recipe-sysroot-native. The host /bin/sh links +libtinfo.so.5 under recipe-sysroot-native, which needs higher libc. But +host libc is older libc. So the incompatible problem occurred. + +Solution: +rewrite cargo-host-linker in python3 + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Changqing Li + +--- + build/cargo-host-linker | 24 +++++++++++++++++++++--- + 1 file changed, 21 insertions(+), 3 deletions(-) + +diff --git a/build/cargo-host-linker b/build/cargo-host-linker +index cbd0472bf7..87d43ce9ec 100755 +--- a/build/cargo-host-linker ++++ b/build/cargo-host-linker +@@ -1,3 +1,21 @@ +-#!/bin/sh +-# See comment in cargo-linker. +-eval ${MOZ_CARGO_WRAP_HOST_LD} ${MOZ_CARGO_WRAP_HOST_LDFLAGS} '"$@"' ++#!/usr/bin/env python3 ++ ++import os,sys ++ ++if os.environ['MOZ_CARGO_WRAP_HOST_LD'].strip(): ++ binary=os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0] ++else: ++ sys.exit(0) ++ ++if os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS'].strip(): ++ if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]: ++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:] ++ else: ++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:] ++else: ++ if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]: ++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + sys.argv[1:] ++ else: ++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + sys.argv[1:] ++ ++os.execvp(binary, args) diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch new file mode 100644 index 0000000..2e13a05 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch @@ -0,0 +1,48 @@ +From 6cb677e3ea8b5491a923405144b18f5264abc62c Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 11 Nov 2021 16:05:54 +0800 +Subject: [PATCH] util.configure: fix one occasionally reproduced configure + failure + +error: +| checking whether the C++ compiler supports -Wno-range-loop-analysis... +| DEBUG: Creating /tmp/conftest.jr1qrcw3.cpp with content: +| DEBUG: | int +| DEBUG: | main(void) +| DEBUG: | { +| DEBUG: | +| DEBUG: | ; +| DEBUG: | return 0; +| DEBUG: | } +| DEBUG: Executing: aarch64-wrs-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mozjs/91.1.0-r0/recipe-sysroot /tmp/conftest.jr1qrcw3.cpp -Werror -Wrange-loop-analysis -c +| DEBUG: The command returned non-zero exit status 1. +| DEBUG: Its error output was: +... +| File "/mozjs/91.1.0-r0/firefox-91.1.0/build/moz.configure/util.configure", line 239, in try_invoke_compiler +| os.remove(path) +| FileNotFoundError: [Errno 2] No such file or directory: '/tmp/conftest.jr1qrcw3.cpp' + +It should be another process that deleted this file by using +"rm -rf conftest*" inappropriately + +Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1740667] + +Signed-off-by: Changqing Li + +--- + build/moz.configure/util.configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/moz.configure/util.configure b/build/moz.configure/util.configure +index f5ff3acd79..44f69deceb 100644 +--- a/build/moz.configure/util.configure ++++ b/build/moz.configure/util.configure +@@ -254,7 +254,7 @@ def try_invoke_compiler( + "C++": ".cpp", + }[language] + +- fd, path = mkstemp(prefix="conftest.", suffix=suffix, text=True) ++ fd, path = mkstemp(prefix="try_invoke_compiler_conftest.", suffix=suffix, text=True) + try: + source = source.encode("ascii", "replace") + diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch new file mode 100644 index 0000000..7c0a113 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch @@ -0,0 +1,44 @@ +From 328c6884bb0201551a0597b572c8310527496417 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 1 Oct 2021 13:01:10 +0200 +Subject: [PATCH] moz.configure: do not look for llvm-objdump + +This avoid dragging in a dependency that isn't even needed +for js builds. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + moz.configure | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/moz.configure b/moz.configure +index 3a9461200d..33b3f49b0c 100755 +--- a/moz.configure ++++ b/moz.configure +@@ -723,15 +723,15 @@ check_prog( + ) + + +-llvm_objdump = check_prog( +- "LLVM_OBJDUMP", +- llvm_tool("llvm-objdump"), +- what="llvm-objdump", +- when="--enable-compile-environment", +- paths=clang_search_path, +-) +- +-add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump) ++#llvm_objdump = check_prog( ++# "LLVM_OBJDUMP", ++# llvm_tool("llvm-objdump"), ++# what="llvm-objdump", ++# when="--enable-compile-environment", ++# paths=clang_search_path, ++#) ++# ++#add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump) + + + def validate_readelf(path): diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch new file mode 100644 index 0000000..ded3047 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch @@ -0,0 +1,66 @@ +From fc2afb92f7be4eba7b65bb35859979e02b8f4ada Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 1 Oct 2021 13:02:17 +0200 +Subject: [PATCH] rust.configure: do not try to find a suitable upstream target + +OE is using custom targets and so this is bound to fail. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + build/moz.configure/rust.configure | 34 ++---------------------------- + 1 file changed, 2 insertions(+), 32 deletions(-) + +diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure +index 7a2fd1ae70..e11f13b253 100644 +--- a/build/moz.configure/rust.configure ++++ b/build/moz.configure/rust.configure +@@ -486,33 +486,7 @@ def assert_rust_compile(host_or_target, rustc_target, rustc): + def rust_host_triple( + rustc, host, compiler_info, rustc_host, rust_supported_targets, arm_target + ): +- rustc_target = detect_rustc_target( +- host, compiler_info, arm_target, rust_supported_targets +- ) +- if rustc_target != rustc_host: +- if host.alias == rustc_target: +- configure_host = host.alias +- else: +- configure_host = "{}/{}".format(host.alias, rustc_target) +- die( +- dedent( +- """\ +- The rust compiler host ({rustc}) is not suitable for the configure host ({configure}). +- +- You can solve this by: +- * Set your configure host to match the rust compiler host by editing your +- mozconfig and adding "ac_add_options --host={rustc}". +- * Or, install the rust toolchain for {configure}, if supported, by running +- "rustup default stable-{rustc_target}" +- """.format( +- rustc=rustc_host, +- configure=configure_host, +- rustc_target=rustc_target, +- ) +- ) +- ) +- assert_rust_compile(host, rustc_target, rustc) +- return rustc_target ++ return rustc_host + + + @depends( +@@ -522,11 +496,7 @@ def rust_host_triple( + def rust_target_triple( + rustc, target, compiler_info, rust_supported_targets, arm_target + ): +- rustc_target = detect_rustc_target( +- target, compiler_info, arm_target, rust_supported_targets +- ) +- assert_rust_compile(target, rustc_target, rustc) +- return rustc_target ++ return target.alias + + + set_config("RUST_TARGET", rust_target_triple) diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch new file mode 100644 index 0000000..c2b64d0 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch @@ -0,0 +1,38 @@ +From 7a2a8e0129db96ec60ba8eb828e1e9965fc5f4ca Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Sat, 30 Apr 2016 15:29:06 -0700 +Subject: [PATCH] use + +Build fix for MIPS with musl libc + +The MIPS specific header is provided by glibc and uclibc +but not by musl. Regardless of the libc, the kernel headers provide + which provides the same definitions, so use that +instead. + +Upstream-Status: Pending + +[Vincent: +Taken from: https://sourceware.org/bugzilla/show_bug.cgi?id=21070] + +Signed-off-by: Andre McCurdy +Signed-off-by: Khem Raj +Signed-off-by: Vicente Olivert Riera + +--- + mfbt/RandomNum.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mfbt/RandomNum.cpp b/mfbt/RandomNum.cpp +index 96de5d4055..2cfb2e10ee 100644 +--- a/mfbt/RandomNum.cpp ++++ b/mfbt/RandomNum.cpp +@@ -53,7 +53,7 @@ extern "C" BOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer, + # elif defined(__s390__) + # define GETRANDOM_NR 349 + # elif defined(__mips__) +-# include ++# include + # if _MIPS_SIM == _MIPS_SIM_ABI32 + # define GETRANDOM_NR 4353 + # elif _MIPS_SIM == _MIPS_SIM_ABI64 diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/fix-musl-build.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/fix-musl-build.patch new file mode 100644 index 0000000..6dba603 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/fix-musl-build.patch @@ -0,0 +1,27 @@ +From b27770df435d62b722727d4af898ee22f6f50801 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 20 Oct 2021 16:21:14 -0700 +Subject: [PATCH] mozjs: Fix musl miscompiles with HAVE_THREAD_TLS_KEYWORD + +Upstream: No +Reason: mozjs60 miscompiles on musl if built with HAVE_THREAD_TLS_KEYWORD: +https://github.com/void-linux/void-packages/issues/2598 + +--- + js/src/old-configure.in | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/js/src/old-configure.in b/js/src/old-configure.in +index cabd72a2b6..0f08d91cbf 100644 +--- a/js/src/old-configure.in ++++ b/js/src/old-configure.in +@@ -807,6 +807,9 @@ if test "$ac_cv_thread_keyword" = yes; then + *-android*|*-linuxandroid*) + : + ;; ++ *-musl*) ++ : ++ ;; + *) + AC_DEFINE(HAVE_THREAD_TLS_KEYWORD) + ;; diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/musl-disable-stackwalk.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/musl-disable-stackwalk.patch new file mode 100644 index 0000000..ef727c9 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/musl-disable-stackwalk.patch @@ -0,0 +1,27 @@ +From 37039e1af278b7776fb6b614ded5deaf0c66ece9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 18 Sep 2023 19:32:55 +0000 +Subject: [PATCH] Musl does not have stack unwinder like glibc therefore we can + not assume that its always available on musl, we do need to check for target + environment as well which could be musl or glibc. + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +--- + mozglue/misc/StackWalk.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp +index 307715b170..a8d3cb40c0 100644 +--- a/mozglue/misc/StackWalk.cpp ++++ b/mozglue/misc/StackWalk.cpp +@@ -43,7 +43,7 @@ using namespace mozilla; + # define MOZ_STACKWALK_SUPPORTS_MACOSX 0 + #endif + +-#if (defined(linux) && \ ++#if (defined(linux) && defined(__GLIBC__) && \ + ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \ + defined(HAVE__UNWIND_BACKTRACE))) + # define MOZ_STACKWALK_SUPPORTS_LINUX 1 diff --git a/meta-gnome/recipes-support/mozjs/mozjs-115/riscv32.patch b/meta-gnome/recipes-support/mozjs/mozjs-115/riscv32.patch new file mode 100644 index 0000000..5aefbf2 --- /dev/null +++ b/meta-gnome/recipes-support/mozjs/mozjs-115/riscv32.patch @@ -0,0 +1,60 @@ +From ff5fd2c08a0d6f0b39a9970f3b10e31a46e99383 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 24 Oct 2021 22:32:50 -0700 +Subject: [PATCH] Add RISCV32 support + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +--- + build/moz.configure/init.configure | 3 +++ + python/mozbuild/mozbuild/configure/constants.py | 2 ++ + .../mozbuild/test/configure/test_toolchain_configure.py | 1 + + 3 files changed, 6 insertions(+) + +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index 53bbc4203f..2ac40d3d39 100644 +--- a/build/moz.configure/init.configure ++++ b/build/moz.configure/init.configure +@@ -584,6 +584,9 @@ def split_triplet(triplet, allow_wasi=False): + elif cpu.startswith("aarch64"): + canonical_cpu = "aarch64" + endianness = "little" ++ elif cpu in ("riscv32", "riscv32gc"): ++ canonical_cpu = "riscv32" ++ endianness = "little" + elif cpu in ("riscv64", "riscv64gc"): + canonical_cpu = "riscv64" + endianness = "little" +diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py +index a36152651d..a6050be5d8 100644 +--- a/python/mozbuild/mozbuild/configure/constants.py ++++ b/python/mozbuild/mozbuild/configure/constants.py +@@ -51,6 +51,7 @@ CPU_bitness = { + "mips64": 64, + "ppc": 32, + "ppc64": 64, ++ 'riscv32': 32, + "riscv64": 64, + "s390": 32, + "s390x": 64, +@@ -98,6 +99,7 @@ CPU_preprocessor_checks = OrderedDict( + ("m68k", "__m68k__"), + ("mips64", "__mips64"), + ("mips32", "__mips__"), ++ ("riscv32", "__riscv && __riscv_xlen == 32"), + ("riscv64", "__riscv && __riscv_xlen == 64"), + ("loongarch64", "__loongarch64"), + ("sh4", "__sh__"), +diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +index c6af3d99d4..7ef02e1a85 100644 +--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py ++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +@@ -1325,6 +1325,7 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest): + "m68k-unknown-linux-gnu": big_endian + {"__m68k__": 1}, + "mips64-unknown-linux-gnuabi64": big_endian + {"__mips64": 1, "__mips__": 1}, + "mips-unknown-linux-gnu": big_endian + {"__mips__": 1}, ++ "riscv32-unknown-linux-gnu": little_endian + {"__riscv": 1, "__riscv_xlen": 32}, + "riscv64-unknown-linux-gnu": little_endian + {"__riscv": 1, "__riscv_xlen": 64}, + "sh4-unknown-linux-gnu": little_endian + {"__sh__": 1}, + } diff --git a/meta-gnome/recipes-support/mozjs/mozjs-102_102.3.0.bb b/meta-gnome/recipes-support/mozjs/mozjs-115_115.2.0.bb similarity index 80% rename from meta-gnome/recipes-support/mozjs/mozjs-102_102.3.0.bb rename to meta-gnome/recipes-support/mozjs/mozjs-115_115.2.0.bb index 6ed9c3a..d931fd5 100644 --- a/meta-gnome/recipes-support/mozjs/mozjs-102_102.3.0.bb +++ b/meta-gnome/recipes-support/mozjs/mozjs-115_115.2.0.bb @@ -8,15 +8,19 @@ SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/fire file://0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch \ file://0004-use-asm-sgidefs.h.patch \ file://fix-musl-build.patch \ - file://0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \ file://riscv32.patch \ + file://0002-moz.configure-do-not-look-for-llvm-objdump.patch \ file://0001-util.configure-fix-one-occasionally-reproduced-confi.patch \ file://0001-rewrite-cargo-host-linker-in-python3.patch \ - file://0009-moz.configure-do-not-look-for-llvm-dump.patch \ + file://musl-disable-stackwalk.patch \ + file://0001-add-arm-to-list-of-mozinline.patch \ + file://0001-fix-init-configure.patch \ " -SRC_URI[sha256sum] = "308e23b6dcf964e342cf95fd0c8a386127371b620a489ae26e537d728341b55a" +#SRC_URI[sha256sum] = "31b074623f09ca821a8a7dee0b3d2df1a45f1164264d31c26b4969a4d6a21dd1" +SRC_URI[sha256sum] = "51534dd2a158d955a2cb67cc1308f100f6c9def0788713ed8b4d743f3ad72457" -S = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}" + +S = "${WORKDIR}/firefox-${PV}" inherit pkgconfig perlnative python3native rust @@ -64,12 +68,12 @@ do_install() { inherit multilib_script multilib_header -MULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js91-config" +MULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js115-config" do_install:append() { - oe_multilib_header mozjs-102/js-config.h + oe_multilib_header mozjs-115/js-config.h sed -e 's@${STAGING_DIR_HOST}@@g' \ - -i ${D}${bindir}/js102-config + -i ${D}${bindir}/js115-config rm -f ${D}${libdir}/libjs_static.ajs } diff --git a/meta-gnome/recipes-support/tecla/tecla_45.0.bb b/meta-gnome/recipes-support/tecla/tecla_45.0.bb new file mode 100644 index 0000000..c047e29 --- /dev/null +++ b/meta-gnome/recipes-support/tecla/tecla_45.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "Tecla is a keyboard layout viewer that uses GTK/Libadwaita for UI, and libxkbcommon to deal with keyboard maps." +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=75859989545e37968a99b631ef42722e" + +DEPENDS = " \ + libxkbcommon \ + libadwaita \ + wayland \ + gtk4 \ +" + +REQUIRED_DISTRO_FEATURES = "wayland" +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase pkgconfig features_check + +SRC_URI[archive.sha256sum] = "5c02bb4019b1cffb5663da6107503eff853836a8783dd4705dd04a49f7adc25b" diff --git a/meta-gnome/recipes-support/wayland/libinput/run-ptest b/meta-gnome/recipes-support/wayland/libinput/run-ptest new file mode 100644 index 0000000..d11e6eb --- /dev/null +++ b/meta-gnome/recipes-support/wayland/libinput/run-ptest @@ -0,0 +1,9 @@ +#!/bin/sh + +/usr/libexec/libinput/libinput-test-suite -j1 +if [ $? -eq 0 ]; then + echo 'PASS: libinput-test-suite' +else + echo 'FAIL: libinput-test-suite' +fi + diff --git a/meta-gnome/recipes-support/wayland/libinput_1.24.0.bb b/meta-gnome/recipes-support/wayland/libinput_1.24.0.bb new file mode 100644 index 0000000..49a1da2 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/libinput_1.24.0.bb @@ -0,0 +1,49 @@ +SUMMARY = "Library to handle input devices in Wayland compositors" +DESCRIPTION = "libinput is a library to handle input devices in Wayland \ +compositors and to provide a generic X.Org input driver. It provides \ +device detection, device handling, input device event processing and \ +abstraction so minimize the amount of custom input code compositors need to \ +provide the common set of functionality that users expect." +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=bab4ac7dc1c10bc0fb037dc76c46ef8a" + +DEPENDS = "libevdev udev mtdev libcheck" + +SRC_URI = "git://gitlab.freedesktop.org/libinput/libinput.git;protocol=https;branch=main \ + file://run-ptest \ + " +SRCREV = "1680f2fbaa63a91739012c6b57988ab1918ea0b7" +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_REGEX = "libinput-(?P\d+\.\d+\.(?!9\d+)\d+)" + +inherit meson pkgconfig lib_package ptest + +# Patch out build directory, otherwise it leaks into ptest binary +do_configure:append() { + sed -i -e "s,${WORKDIR},,g" config.h + if [ -e "litest-config.h" ]; then + sed -i -e "s,${WORKDIR},,g" litest-config.h + fi +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" +PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" + +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 +RPROVIDES:${PN} = "libinput" +RREPLACES:${PN} = "libinput" +RCONFLICTS:${PN} = "libinput" + +FILES:${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite" diff --git a/meta-gnome/recipes-support/wayland/mtdev_1.1.6.bb b/meta-gnome/recipes-support/wayland/mtdev_1.1.6.bb new file mode 100644 index 0000000..7c1cb5e --- /dev/null +++ b/meta-gnome/recipes-support/wayland/mtdev_1.1.6.bb @@ -0,0 +1,18 @@ +SUMMARY = "Multitouch Protocol Translation Library" + +DESCRIPTION = "mtdev is a library which transforms all variants of kernel \ +multitouch events to the slotted type B protocol. The events put into mtdev may \ +be from any MT device, specifically type A without contact tracking, type A with \ +contact tracking, or type B with contact tracking" + +HOMEPAGE = "http://bitmath.org/code/mtdev/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=ea6bd0268bb0fcd6b27698616ceee5d6" + +SRC_URI = "http://bitmath.org/code/${BPN}/${BP}.tar.bz2" +SRC_URI[md5sum] = "bf8ef2482e84a00b5db8fbd3ce00e249" +SRC_URI[sha256sum] = "15d7b28da8ac71d8bc8c9287c2045fd174267bc740bec10cfda332dc1204e0e0" + +inherit autotools pkgconfig diff --git a/meta-gnome/recipes-support/wayland/required-distro-features.inc b/meta-gnome/recipes-support/wayland/required-distro-features.inc new file mode 100644 index 0000000..bb4a0e8 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/required-distro-features.inc @@ -0,0 +1,8 @@ +# distro features required by weston recipes + +inherit features_check + +# requires pam enabled if started via systemd +# +REQUIRED_DISTRO_FEATURES = "wayland opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}" + diff --git a/meta-gnome/recipes-support/wayland/wayland-protocols_1.32.bb b/meta-gnome/recipes-support/wayland/wayland-protocols_1.32.bb new file mode 100644 index 0000000..05943bc --- /dev/null +++ b/meta-gnome/recipes-support/wayland/wayland-protocols_1.32.bb @@ -0,0 +1,25 @@ +SUMMARY = "Collection of additional Wayland protocols" +DESCRIPTION = "Wayland protocols that add functionality not \ +available in the Wayland core protocol. Such protocols either add \ +completely new functionality, or extend the functionality of some other \ +protocol either in Wayland core, or some other protocol in \ +wayland-protocols." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +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] = "7459799d340c8296b695ef857c07ddef24c5a09b09ab6a74f7b92640d2b1ba11" + +UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" + +inherit meson pkgconfig allarch + +EXTRA_OEMESON += "-Dtests=false" + +PACKAGES = "${PN}" +FILES:${PN} += "${datadir}/pkgconfig/wayland-protocols.pc" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/meta-gnome/recipes-support/wayland/wayland-utils_1.2.0.bb b/meta-gnome/recipes-support/wayland/wayland-utils_1.2.0.bb new file mode 100644 index 0000000..657f67f --- /dev/null +++ b/meta-gnome/recipes-support/wayland/wayland-utils_1.2.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "Wayland utilities" +DESCRIPTION = "Wayland-utils contains (for now) \ +wayland-info, a utility for displaying information about the Wayland \ +protocols supported by a Wayland compositor. \ +wayland-info is basically a standalone version of weston-info as found \ +in weston repository. " +HOMEPAGE = "http://wayland.freedesktop.org" +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" +SRC_URI[sha256sum] = "d9278c22554586881802540751bcc42569262bf80cd9ac9b0fd12ff4bd09a9e4" + +UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" + +inherit meson pkgconfig + +DEPENDS += "wayland wayland-native wayland-protocols" + +PACKAGECONFIG ??= "drm" +PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,libdrm" diff --git a/meta-gnome/recipes-support/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch b/meta-gnome/recipes-support/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch new file mode 100644 index 0000000..bc753de --- /dev/null +++ b/meta-gnome/recipes-support/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch @@ -0,0 +1,41 @@ +From b4c64b6f07743e3fb63ce52359bc664ab7d60df0 Mon Sep 17 00:00:00 2001 +From: Joshua Watt +Date: Thu, 20 Feb 2020 15:20:45 -0600 +Subject: [PATCH] build: Fix strndup detection on MinGW + +GCC and meson conspire together to incorrectly detect that strndup() +exists on MinGW as __builtin_strndup, when no such function exists. As a +work around, meson will skip looking for __builtin functions if an +'#include' is in the prefix, so add '#include ' when looking +for strndup(). + +See: https://github.com/mesonbuild/meson/issues/3672 + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/merge_requests/63] + +Signed-off-by: Joshua Watt +Signed-off-by: Denys Dmytriyenko +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 3bc25c9..adde7b9 100644 +--- a/meson.build ++++ b/meson.build +@@ -38,11 +38,11 @@ have_funcs = [ + 'prctl', + 'memfd_create', + 'mremap', +- 'strndup', + ] + foreach f: have_funcs + config_h.set('HAVE_' + f.underscorify().to_upper(), cc.has_function(f)) + endforeach ++config_h.set('HAVE_STRNDUP', cc.has_function('strndup') and cc.has_header_symbol('string.h', 'strndup')) + config_h.set10('HAVE_XUCRED_CR_PID', cc.has_member('struct xucred', 'cr_pid', prefix : '#include ')) + have_broken_msg_cmsg_cloexec = false + if host_machine.system() == 'freebsd' +-- +2.7.4 + diff --git a/meta-gnome/recipes-support/wayland/wayland/run-ptest b/meta-gnome/recipes-support/wayland/wayland/run-ptest new file mode 100644 index 0000000..7e8d9de --- /dev/null +++ b/meta-gnome/recipes-support/wayland/wayland/run-ptest @@ -0,0 +1,17 @@ +#!/bin/sh + +export WAYLAND_SCANNER=wayland-scanner +export TEST_DATA_DIR=tests/data +export TEST_OUTPUT_DIR=tests/output +export SED=sed +export WAYLAND_EGL_LIB=/usr/lib/libwayland-egl.so.1 +export NM=nm + +for i in `ls tests/*-test tests/wayland-egl-symbols-check tests/scanner-test.sh`; do + $i + if [ $? -eq 0 ]; then + echo "PASS: $i" + else + echo "FAIL: $i" + fi +done diff --git a/meta-gnome/recipes-support/wayland/wayland_1.22.0.bb b/meta-gnome/recipes-support/wayland/wayland_1.22.0.bb new file mode 100644 index 0000000..26bad58 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/wayland_1.22.0.bb @@ -0,0 +1,61 @@ +SUMMARY = "Wayland, a protocol between a compositor and clients" +DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \ +as well as a C library implementation of that protocol. The compositor can be \ +a standalone display server running on Linux kernel modesetting and evdev \ +input devices, an X application, or a wayland client itself. The clients can \ +be traditional applications, X servers (rootless or fullscreen) or other \ +display servers." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \ + file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce" + +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 \ + " +SRC_URI[sha256sum] = "1540af1ea698a471c2d8e9d288332c7e0fd360c8f1d12936ebb7e7cbc2425842" + +UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" +UPSTREAM_CHECK_REGEX = "wayland-(?P\d+\.\d+\.(?!9\d+)\d+)" + +inherit meson pkgconfig ptest + +PACKAGECONFIG ??= "dtd-validation" +PACKAGECONFIG[dtd-validation] = "-Ddtd_validation=true,-Ddtd_validation=false,libxml2,," + +EXTRA_OEMESON = "-Ddocumentation=false" +EXTRA_OEMESON:class-native = "-Ddocumentation=false" + +# Wayland installs a M4 macro for other projects to use, which uses the target +# pkg-config to find files. Replace pkg-config with pkg-config-native. +do_install:append:class-native() { + sed -e 's,PKG_CHECK_MODULES(.*),,g' \ + -e 's,$PKG_CONFIG,pkg-config-native,g' \ + -i ${D}/${datadir}/aclocal/wayland-scanner.m4 +} + +do_install_ptest() { + mkdir -p ${D}${PTEST_PATH}/tests/data + cp -rf ${B}/tests/*-test ${B}/tests/*-checker ${D}${PTEST_PATH}/tests + cp -rf ${B}/tests/*-checker ${D}${PTEST_PATH} + cp -rf ${S}/tests/scanner-test.sh ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/data/* ${D}${PTEST_PATH}/tests/data/ + cp -rf ${S}/egl/wayland-egl-symbols-check ${D}${PTEST_PATH}/tests/ +} + +sysroot_stage_all:append:class-target () { + rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4 + cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/ +} + +PACKAGES =+ "${PN}-tools" + +FILES:${PN}-tools = "${bindir}/wayland-scanner" +FILES:${PN}-dev += "${datadir}/${BPN}/wayland-scanner.mk" + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS:${PN}-ptest += "binutils sed ${PN}-tools" diff --git a/meta-gnome/recipes-support/wayland/weston-init.bb b/meta-gnome/recipes-support/wayland/weston-init.bb new file mode 100644 index 0000000..024e400 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston-init.bb @@ -0,0 +1,106 @@ +SUMMARY = "Startup script and systemd unit file for the Weston Wayland compositor" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +SRC_URI = "file://init \ + file://weston.env \ + file://weston.ini \ + file://weston.service \ + file://weston.socket \ + file://weston-socket.sh \ + file://weston-autologin \ + file://weston-start" + +S = "${WORKDIR}" + +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] = ",," + +DEFAULTBACKEND ??= "" +DEFAULTBACKEND:qemuall ?= "drm" + +do_install() { + # 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 + + # 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 + + if [ -n "${DEFAULTBACKEND}" ]; then + sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + 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 + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then + sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then + sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + install -dm 755 -o weston -g weston ${D}/home/weston +} + +INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}" + +inherit update-rc.d systemd useradd + +USERADD_PACKAGES = "${PN}" + +# rdepends on weston which depends on virtual/egl +# +require ${THISDIR}/required-distro-features.inc + +RDEPENDS:${PN} = "weston kbd" + +INITSCRIPT_NAME = "weston" +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 \ + ${sysconfdir}/pam.d/ \ + /home/weston \ + " + +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,render,wayland weston" +GROUPADD_PARAM:${PN} = "-r wayland; -r render" + diff --git a/meta-gnome/recipes-support/wayland/weston-init/init b/meta-gnome/recipes-support/wayland/weston-init/init new file mode 100644 index 0000000..a5c54e0 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston-init/init @@ -0,0 +1,54 @@ +#!/bin/sh +# +### BEGIN INIT INFO +# Provides: weston +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +### END INIT INFO + +if test -e /etc/default/weston ; then + . /etc/default/weston +fi + +killproc() { + pid=`/bin/pidof $1` + [ "$pid" != "" ] && kill $pid +} + +read CMDLINE < /proc/cmdline +for x in $CMDLINE; do + case $x in + weston=false) + echo "Weston disabled" + exit 0; + ;; + esac +done + +case "$1" in + start) + . /etc/profile + export HOME=ROOTHOME + + WESTON_USER=weston weston-start $OPTARGS & + ;; + + stop) + echo "Stopping Weston" + killproc weston + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + + *) + echo "usage: $0 { start | stop | restart }" + ;; +esac + +exit 0 diff --git a/meta-gnome/recipes-support/wayland/weston-init/weston-autologin b/meta-gnome/recipes-support/wayland/weston-init/weston-autologin new file mode 100644 index 0000000..f6e6d10 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston-init/weston-autologin @@ -0,0 +1,11 @@ +auth required pam_nologin.so +auth required pam_unix.so try_first_pass nullok + +account required pam_nologin.so +account required pam_unix.so + +session required pam_env.so +session required pam_unix.so +-session optional pam_systemd.so type=wayland class=user desktop=weston +-session optional pam_loginuid.so + diff --git a/meta-gnome/recipes-support/wayland/weston-init/weston-socket.sh b/meta-gnome/recipes-support/wayland/weston-init/weston-socket.sh new file mode 100755 index 0000000..86389d6 --- /dev/null +++ b/meta-gnome/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-gnome/recipes-support/wayland/weston-init/weston-start b/meta-gnome/recipes-support/wayland/weston-init/weston-start new file mode 100755 index 0000000..01670cd --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston-init/weston-start @@ -0,0 +1,71 @@ +#!/bin/sh +# Copyright (C) 2016 O.S. Systems Software LTDA. +# Copyright (C) 2016 Freescale Semiconductor + +export PATH="/sbin:/usr/sbin:/bin:/usr/bin" + +usage() { + cat <] +EOF +} + +## Module support +modules_dir=@DATADIR@/weston-start + +# Add weston extra argument +add_weston_argument() { + weston_args="$weston_args $1" +} + +## Add module to --modules argument +add_weston_module() { + if [[ "x${weston_modules}" == "x" ]]; then + weston_modules="--modules " + fi; + weston_modules+="${1}," +} + +if [ -n "$WAYLAND_DISPLAY" ]; then + echo "ERROR: A Wayland compositor is already running, nested Weston instance is not supported yet." + exit 1 +fi + +if [ -n "$WESTON_USER" ]; then + if [ -z "$WESTON_GROUP" ]; then + # no explicit WESTON_GROUP given, therefore use WESTON_USER + export WESTON_GROUP="${WESTON_USER}" + fi +fi + +weston_args=$* + +# Load and run modules +if [ -d "$modules_dir" ]; then + for m in "$modules_dir"/*; do + # Skip backup files + if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then + continue + fi + + # process module + . $m + if [[ x"{$weston_modules}" != "x" ]]; then + add_weston_argument "${weston_modules}" + fi; + done +fi + +if test -z "$XDG_RUNTIME_DIR"; then + export XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}` + if ! test -d "$XDG_RUNTIME_DIR"; then + mkdir --parents $XDG_RUNTIME_DIR + chmod 0700 $XDG_RUNTIME_DIR + fi + if [ -n "$WESTON_USER" ] + then + chown $WESTON_USER:$WESTON_GROUP $XDG_RUNTIME_DIR + fi +fi + +su -c "XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}` weston $weston_args --log=/tmp/weston.log" $WESTON_USER diff --git a/meta-gnome/recipes-support/wayland/weston-init/weston.env b/meta-gnome/recipes-support/wayland/weston-init/weston.env new file mode 100644 index 0000000..e69de29 diff --git a/meta-gnome/recipes-support/wayland/weston-init/weston.ini b/meta-gnome/recipes-support/wayland/weston-init/weston.ini new file mode 100644 index 0000000..6bd5aef --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston-init/weston.ini @@ -0,0 +1,75 @@ +# configuration file for Weston + +[core] +#modules=xwayland.so,cms-colord.so +#shell=desktop-shell.so +#gbm-format=xrgb2101010 +require-input=false + +#[shell] +#background-image=/usr/share/backgrounds/gnome/Aqua.jpg +#background-color=0xff002244 +#background-type=tile +#clock-format=minutes +#panel-color=0x90ff0000 +#locking=true +#animation=zoom +#startup-animation=fade +#binding-modifier=ctrl +#num-workspaces=6 +#cursor-theme=whiteglass +#cursor-size=24 + +#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png +#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg +#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg +#animation=fade + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png +#path=/usr/bin/gnome-terminal + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png +#path=/usr/bin/weston-terminal + +#[launcher] +#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png +#path=/usr/bin/google-chrome + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/arts.png +#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower + +#[input-method] +#path=/usr/libexec/weston-keyboard + +#[output] +#name=LVDS1 +#mode=1680x1050 +#transform=90 +#icc_profile=/usr/share/color/icc/colord/Bluish.icc + +#[output] +#name=VGA1 +#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync +#transform=flipped + +#[output] +#name=X1 +#mode=1024x768 +#transform=flipped-90 + +#[libinput] +#enable_tap=true + +#[touchpad] +#constant_accel_factor = 50 +#min_accel_factor = 0.16 +#max_accel_factor = 1.0 + +[screen-share] +command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize + +#[xwayland] +#path=/usr/bin/Xwayland diff --git a/meta-gnome/recipes-support/wayland/weston-init/weston.service b/meta-gnome/recipes-support/wayland/weston-init/weston.service new file mode 100644 index 0000000..8074599 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston-init/weston.service @@ -0,0 +1,71 @@ +# This is a system unit for launching Weston with auto-login as the +# user configured here. +# +# Weston must be built with systemd support, and your weston.ini must load +# the plugin systemd-notify.so. +[Unit] +Description=Weston, a Wayland compositor, as a system service +Documentation=man:weston(1) man:weston.ini(5) +Documentation=http://wayland.freedesktop.org/ + +# Make sure we are started after logins are permitted. +Requires=systemd-user-sessions.service +After=systemd-user-sessions.service + +# If Plymouth is used, we want to start when it is on its way out. +After=plymouth-quit-wait.service + +# D-Bus is necessary for contacting logind. Logind is required. +Wants=dbus.socket +After=dbus.socket + +# Ensure the socket is present +Requires=weston.socket + +# Since we are part of the graphical session, make sure we are started before +# it is complete. +Before=graphical.target + +# Prevent starting on systems without virtual consoles, Weston requires one +# for now. +ConditionPathExists=/dev/tty0 + +[Service] +# Requires systemd-notify.so Weston plugin. +Type=notify +EnvironmentFile=/etc/default/weston +ExecStart=/usr/bin/weston --modules=systemd-notify.so + +# Optional watchdog setup +#TimeoutStartSec=60 +#WatchdogSec=20 + +# The user to run Weston as. +User=weston +Group=weston + +# Make sure the working directory is the users home directory +WorkingDirectory=/home/weston + +# Set up a full user session for the user, required by Weston. +PAMName=weston-autologin + +# A virtual terminal is needed. +TTYPath=/dev/tty7 +TTYReset=yes +TTYVHangup=yes +TTYVTDisallocate=yes + +# Fail to start if not controlling the tty. +StandardInput=tty-fail +StandardOutput=journal +StandardError=journal + +# Log this user with utmp, letting it show up with commands 'w' and 'who'. +UtmpIdentifier=tty7 +UtmpMode=user + +[Install] +# Note: If you only want weston to start on-demand, remove this line with a +# service drop file +WantedBy=graphical.target diff --git a/meta-gnome/recipes-support/wayland/weston-init/weston.socket b/meta-gnome/recipes-support/wayland/weston-init/weston.socket new file mode 100644 index 0000000..c1bdc83 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston-init/weston.socket @@ -0,0 +1,14 @@ +[Unit] +Description=Weston socket +RequiresMountsFor=/run + +[Socket] +ListenStream=/run/wayland-0 +SocketMode=0775 +SocketUser=weston +SocketGroup=wayland +RemoveOnStop=yes + +[Install] +WantedBy=sockets.target + diff --git a/meta-gnome/recipes-support/wayland/weston/systemd-notify.weston-start b/meta-gnome/recipes-support/wayland/weston/systemd-notify.weston-start new file mode 100644 index 0000000..a97e7b3 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston/systemd-notify.weston-start @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: Huawei Inc. +# SPDX-License-Identifier: Apache-2.0 + + +if [[ -x "/usr/lib/weston/systemd-notify.so" ]]; then + add_weston_module "systemd-notify.so" +fi diff --git a/meta-gnome/recipes-support/wayland/weston/weston.desktop b/meta-gnome/recipes-support/wayland/weston/weston.desktop new file mode 100644 index 0000000..1086ae8 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston/weston.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Name=Weston +Comment=Wayland Compostitor +Exec=weston +Icon=weston +Terminal=false +Categories=Utility; diff --git a/meta-gnome/recipes-support/wayland/weston/weston.png b/meta-gnome/recipes-support/wayland/weston/weston.png new file mode 100644 index 0000000..ea8b7e0 Binary files /dev/null and b/meta-gnome/recipes-support/wayland/weston/weston.png differ diff --git a/meta-gnome/recipes-support/wayland/weston/xwayland.weston-start b/meta-gnome/recipes-support/wayland/weston/xwayland.weston-start new file mode 100644 index 0000000..342ac8d --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston/xwayland.weston-start @@ -0,0 +1,6 @@ +#!/bin/sh + +if type Xwayland >/dev/null 2>/dev/null; then + mkdir -m 775 -p /tmp/.X11-unix + chown root:video /tmp/.X11-unix +fi diff --git a/meta-gnome/recipes-support/wayland/weston_12.0.2.bb b/meta-gnome/recipes-support/wayland/weston_12.0.2.bb new file mode 100644 index 0000000..5a179e6 --- /dev/null +++ b/meta-gnome/recipes-support/wayland/weston_12.0.2.bb @@ -0,0 +1,150 @@ +SUMMARY = "Weston, a Wayland compositor" +DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ + file://libweston/compositor.c;endline=27;md5=eb6d5297798cabe2ddc65e2af519bcf0 \ + " + +SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \ + file://weston.png \ + file://weston.desktop \ + file://xwayland.weston-start \ + file://systemd-notify.weston-start \ + " + +SRC_URI[sha256sum] = "eb686a7cf00992a23b17f192fca9a887313e92c346ee35d8575196983d656b4a" + +UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" +UPSTREAM_CHECK_REGEX = "weston-(?P\d+\.\d+\.(?!9\d+)\d+)" + +inherit meson pkgconfig useradd + +# depends on virtual/egl +# +require ${THISDIR}/required-distro-features.inc + +DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0" +DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" + +LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}" + +WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" + +EXTRA_OEMESON += "-Dpipewire=false" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayland egl clients', '', d)} \ + ${@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)} \ + launcher-libseat \ + image-jpeg \ + screenshare \ + shell-desktop \ + shell-fullscreen \ + shell-ivi \ + shell-kiosk \ + " + +# Can be 'damage', 'im', 'egl', 'shm', 'touch', 'dmabuf-feedback', 'dmabuf-v4l', 'dmabuf-egl' or 'all' +SIMPLECLIENTS ?= "all" + +# +# Compositor choices +# +# Weston on KMS +PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev 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 libxcursor" +# Headless Weston +PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false" +# Weston on RDP +PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp" +# VA-API desktop recorder +PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva" +# Weston with EGL support +PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl" +# Weston with lcms support +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 support +PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd dbus" +# Weston with Xwayland support (requires X11 and Wayland) +PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcb libxcursor xcb-util-cursor xwayland" +# colord CMS support +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 +PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base" +# Weston with screen-share support +PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false" +# Traditional desktop shell +PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false" +# Fullscreen shell +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" +# deprecated and superseded by libseat launcher +PACKAGECONFIG[launcher-logind] = "-Ddeprecated-launcher-logind=true,-Ddeprecated-launcher-logind=false," +# 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 + rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la + + # If X11, ship a desktop file to launch it + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then + install -d ${D}${datadir}/applications + install ${WORKDIR}/weston.desktop ${D}${datadir}/applications + + install -d ${D}${datadir}/icons/hicolor/48x48/apps + install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then + install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then + install -Dm 644 ${WORKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then + chmod u+s ${D}${bindir}/weston-launch + fi +} + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ + libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" + +FILES:${PN}-dev += "${libdir}/${BPN}/libexec_weston.so" +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'." + +FILES:${PN}-examples = "${bindir}/*" + +FILES:${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" +RDEPENDS:${PN}-xwayland += "xwayland" + +RDEPENDS:${PN} += "xkeyboard-config" +RRECOMMENDS:${PN} = "weston-init liberation-fonts" +RRECOMMENDS:${PN}-dev += "wayland-protocols" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM:${PN} = "--system weston-launch" diff --git a/meta-gnome/recipes-support/webm/libvpx/libvpx-configure-support-blank-prefix.patch b/meta-gnome/recipes-support/webm/libvpx/libvpx-configure-support-blank-prefix.patch new file mode 100644 index 0000000..e0fd4fe --- /dev/null +++ b/meta-gnome/recipes-support/webm/libvpx/libvpx-configure-support-blank-prefix.patch @@ -0,0 +1,54 @@ +From dc0a5c3d2dd4e79d12a150a246a95c4dc88326f1 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Tue, 16 Aug 2011 16:04:35 +0200 +Subject: [PATCH] Upstream: not yet + +Fix configure to accept "--prefix=" (a blank prefix). + +--- +Upstream-Status: Pending + + build/make/configure.sh | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +diff --git a/build/make/configure.sh b/build/make/configure.sh +index 007e020..04d5cbf 100644 +--- a/build/make/configure.sh ++++ b/build/make/configure.sh +@@ -581,6 +581,8 @@ process_common_cmdline() { + ;; + --prefix=*) + prefix="${optval}" ++ # Distinguish between "prefix not set" and "prefix set to ''" ++ prefixset=1 + ;; + --libdir=*) + libdir="${optval}" +@@ -614,13 +616,23 @@ process_cmdline() { + } + + post_process_common_cmdline() { +- prefix="${prefix:-/usr/local}" ++ if [ "$prefixset" != "1" ] ++ then ++ prefix=/usr/local ++ fi ++ ++ # Strip trailing slash + prefix="${prefix%/}" ++ + libdir="${libdir:-${prefix}/lib}" + libdir="${libdir%/}" +- if [ "${libdir#${prefix}}" = "${libdir}" ]; then +- die "Libdir ${libdir} must be a subdirectory of ${prefix}" +- fi ++ ++ case "$libdir" in ++ "${prefix}/"*) ;; ++ *) ++ die "Libdir ${libdir} must be a subdirectory of ${prefix}" ++ ;; ++ esac + } + + post_process_cmdline() { diff --git a/meta-gnome/recipes-support/webm/libvpx_1.13.0.bb b/meta-gnome/recipes-support/webm/libvpx_1.13.0.bb new file mode 100644 index 0000000..558b448 --- /dev/null +++ b/meta-gnome/recipes-support/webm/libvpx_1.13.0.bb @@ -0,0 +1,53 @@ +SUMMARY = "VPX multi-format codec" +DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams." +HOMEPAGE = "http://www.webmproject.org/code/" +BUGTRACKER = "http://code.google.com/p/webm/issues/list" +SECTION = "libs/multimedia" +LICENSE = "BSD-3-Clause" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4" + +SRCREV = "d6eb9696aa72473c1a11d34d928d35a3acc0c9a9" +SRC_URI += "git://chromium.googlesource.com/webm/libvpx;protocol=https;branch=main \ + file://libvpx-configure-support-blank-prefix.patch \ + " + +S = "${WORKDIR}/git" + +# ffmpeg links with this and fails +# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4' +ARM_INSTRUCTION_SET = "arm" + +CFLAGS += "-fPIC" +BUILD_LDFLAGS += "-pthread" + +export CC +export LD = "${CC}" + +VPXTARGET:armv5te = "armv5te-linux-gcc" +VPXTARGET:armv6 = "armv6-linux-gcc" +VPXTARGET:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon","armv7-linux-gcc","generic-gnu",d)}" +VPXTARGET ?= "generic-gnu" + +CONFIGUREOPTS = " \ + --target=${VPXTARGET} \ + --enable-vp9 \ + --enable-libs \ + --disable-install-docs \ + --disable-static \ + --enable-shared \ + --prefix=${prefix} \ + --libdir=${libdir} \ + --size-limit=16384x16384 \ +" + +do_configure() { + ${S}/configure ${CONFIGUREOPTS} +} + +do_install() { + oe_runmake install DESTDIR=${D} + chown -R root:root ${D} +} + +BBCLASSEXTEND += "native"