Please split the .bb/.inc merge into a separate commit.

Alex

On Mon, 11 Mar 2024 at 08:21, Markus Volk <f_...@t-online.de> wrote:
>
> - add a backport patch to fix compatibility with older gtk4 versions
> - merge .bb and .inc
>
> Signed-off-by: Markus Volk <f_...@t-online.de>
> ---
>  meta/recipes-devtools/vala/vala.inc           | 71 -----------------
>  ...tk4-Preserve-compatibility-with-4.14.patch | 39 ++++++++++
>  meta/recipes-devtools/vala/vala_0.56.15.bb    | 76 ++++++++++++++++++-
>  3 files changed, 114 insertions(+), 72 deletions(-)
>  delete mode 100644 meta/recipes-devtools/vala/vala.inc
>  create mode 100644 
> meta/recipes-devtools/vala/vala/0001-gtk4-Preserve-compatibility-with-4.14.patch
>
> diff --git a/meta/recipes-devtools/vala/vala.inc 
> b/meta/recipes-devtools/vala/vala.inc
> deleted file mode 100644
> index 0177e86240..0000000000
> --- a/meta/recipes-devtools/vala/vala.inc
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -SUMMARY = "C#-like programming language for easing GObject programming"
> -HOMEPAGE = "http://vala-project.org";
> -DESCRIPTION = "Vala is a C#-like language dedicated to ease GObject 
> programming. \
> -Vala compiles to plain C and has no runtime environment nor penalities 
> whatsoever."
> -SECTION = "devel"
> -DEPENDS = "bison-native flex-native glib-2.0 gobject-introspection"
> -
> -# Appending libxslt-native to dependencies has an effect
> -# of rebuilding the manual, which is very slow. Let's do this
> -# only when api-documentation distro feature is enabled.
> -DEPENDS:append:class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 
> 'api-documentation', 'libxslt-native', '', d)}"
> -
> -# vala-native contains a native version of vapigen, which we use instead of 
> the target one
> -DEPENDS:append:class-target = " vala-native"
> -BBCLASSEXTEND = "native"
> -LICENSE = "LGPL-2.1-only"
> -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
> -
> -SHRT_VER = 
> "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
> -
> -SRC_URI = 
> "http://ftp.gnome.org/pub/GNOME/sources/${BPN}/${SHRT_VER}/${BP}.tar.xz";
> -inherit autotools pkgconfig upstream-version-is-even
> -
> -FILES:${PN} += "${datadir}/${BPN}-${SHRT_VER}/vapi 
> ${libdir}/${BPN}-${SHRT_VER}/"
> -FILES:${PN}-doc += "${datadir}/devhelp"
> -
> -# .gir files from gobject-introspection are installed to ${libdir} when 
> multilib is enabled
> -GIRDIR_OPT = "${@'--girdir=${STAGING_LIBDIR}/gir-1.0' if 
> d.getVar('MULTILIBS') else ''}"
> -
> -do_configure:prepend:class-target() {
> -        # Write out a vapigen wrapper that will be provided by pkg-config 
> file installed in target sysroot
> -        # The wrapper will call a native vapigen
> -        cat > ${B}/vapigen-wrapper << EOF
> -#!/bin/sh
> -vapigen-${SHRT_VER} ${GIRDIR_OPT} "\$@"
> -EOF
> -        chmod +x ${B}/vapigen-wrapper
> -}
> -
> -EXTRA_OECONF += " --disable-valadoc"
> -
> -# Vapigen wrapper needs to be available system-wide, because it will be used
> -# to build vapi files from all other packages with vala support
> -do_install:append:class-target() {
> -        install -d ${D}${bindir_crossscripts}/
> -        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}/
> -}
> -
> -# Put vapigen wrapper into target sysroot so that it can be used when 
> building
> -# vapi files.
> -SYSROOT_DIRS += "${bindir_crossscripts}"
> -
> -inherit multilib_script
> -MULTILIB_SCRIPTS = "${PN}:${bindir}/vala-gen-introspect-0.56"
> -
> -SYSROOT_PREPROCESS_FUNCS:append:class-target = " vapigen_sysroot_preprocess"
> -vapigen_sysroot_preprocess() {
> -        # Tweak the vapigen name in the vapigen pkgconfig file, so that it 
> picks
> -        # up our wrapper.
> -        sed -i \
> -           -e "s|vapigen=.*|vapigen=${bindir_crossscripts}/vapigen-wrapper|" 
> \
> -           ${SYSROOT_DESTDIR}${libdir}/pkgconfig/vapigen-${SHRT_VER}.pc
> -}
> -
> -SSTATE_SCAN_FILES += "vapigen-wrapper"
> -
> -PACKAGE_PREPROCESS_FUNCS += "vala_package_preprocess"
> -
> -vala_package_preprocess () {
> -       rm -rf ${PKGD}${bindir_crossscripts}
> -}
> diff --git 
> a/meta/recipes-devtools/vala/vala/0001-gtk4-Preserve-compatibility-with-4.14.patch
>  
> b/meta/recipes-devtools/vala/vala/0001-gtk4-Preserve-compatibility-with-4.14.patch
> new file mode 100644
> index 0000000000..161474086e
> --- /dev/null
> +++ 
> b/meta/recipes-devtools/vala/vala/0001-gtk4-Preserve-compatibility-with-4.14.patch
> @@ -0,0 +1,39 @@
> +From 17349020fb95454d06f827fd555b05248f10a370 Mon Sep 17 00:00:00 2001
> +From: Rico Tzschichholz <ric...@ubuntu.com>
> +Date: Thu, 7 Mar 2024 17:56:05 +0100
> +Subject: [PATCH] gtk4: Preserve compatibility with < 4.14
> +
> +Don't prefer new accessor methods for Calendar.day/month/year
> +
> +Fixes https://gitlab.gnome.org/GNOME/vala/issues/1531
> +
> +Upstream-Status: Backport 
> [https://gitlab.gnome.org/GNOME/vala/-/commit/e0c4ea8c4a0bbf859b5341a7465b395892789d9e]
> +
> +Signed-off-by: Markus Volk <f_...@t-online.de>
> +---
> + vapi/gtk4.vapi                 | 3 +++
> + vapi/metadata/Gtk-4.0.metadata | 5 +++++
> + 2 files changed, 8 insertions(+)
> +
> +diff --git a/vapi/gtk4.vapi b/vapi/gtk4.vapi
> +index 49f8b2078..51ecea27d 100644
> +--- a/vapi/gtk4.vapi
> ++++ b/vapi/gtk4.vapi
> +@@ -7350,11 +7350,14 @@ namespace Gtk {
> +               [Version (since = "4.14")]
> +               public void set_year (int year);
> +               public void unmark_day (uint day);
> ++              [NoAccessorMethod]
> +               public int day { get; set; }
> ++              [NoAccessorMethod]
> +               public int month { get; set; }
> +               public bool show_day_names { get; set; }
> +               public bool show_heading { get; set; }
> +               public bool show_week_numbers { get; set; }
> ++              [NoAccessorMethod]
> +               public int year { get; set; }
> +               public signal void day_selected ();
> +               public signal void next_month ();
> +--
> +2.44.0
> +
> diff --git a/meta/recipes-devtools/vala/vala_0.56.15.bb 
> b/meta/recipes-devtools/vala/vala_0.56.15.bb
> index dc483b12ba..1f55689c45 100644
> --- a/meta/recipes-devtools/vala/vala_0.56.15.bb
> +++ b/meta/recipes-devtools/vala/vala_0.56.15.bb
> @@ -1,3 +1,77 @@
> -require ${BPN}.inc
> +SUMMARY = "C#-like programming language for easing GObject programming"
> +HOMEPAGE = "http://vala-project.org";
> +DESCRIPTION = "Vala is a C#-like language dedicated to ease GObject 
> programming. \
> +Vala compiles to plain C and has no runtime environment nor penalities 
> whatsoever."
> +SECTION = "devel"
> +DEPENDS = "bison-native flex-native glib-2.0 gobject-introspection"
>
> +# Appending libxslt-native to dependencies has an effect
> +# of rebuilding the manual, which is very slow. Let's do this
> +# only when api-documentation distro feature is enabled.
> +DEPENDS:append:class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 
> 'api-documentation', 'libxslt-native', '', d)}"
> +
> +# vala-native contains a native version of vapigen, which we use instead of 
> the target one
> +DEPENDS:append:class-target = " vala-native"
> +BBCLASSEXTEND = "native"
> +LICENSE = "LGPL-2.1-only"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
> +
> +SHRT_VER = 
> "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
> +
> +SRC_URI = " \
> +       
> http://ftp.gnome.org/pub/GNOME/sources/${BPN}/${SHRT_VER}/${BP}.tar.xz \
> +       file://0001-gtk4-Preserve-compatibility-with-4.14.patch \
> +"
>  SRC_URI[sha256sum] = 
> "535b6452ed310fd5fb5c7dd6794b6213dac3b48e645e5bff3173741ec2cb3f2b"
> +
> +inherit autotools pkgconfig upstream-version-is-even
> +
> +FILES:${PN} += "${datadir}/${BPN}-${SHRT_VER}/vapi 
> ${libdir}/${BPN}-${SHRT_VER}/"
> +FILES:${PN}-doc += "${datadir}/devhelp"
> +
> +# .gir files from gobject-introspection are installed to ${libdir} when 
> multilib is enabled
> +GIRDIR_OPT = "${@'--girdir=${STAGING_LIBDIR}/gir-1.0' if 
> d.getVar('MULTILIBS') else ''}"
> +
> +do_configure:prepend:class-target() {
> +        # Write out a vapigen wrapper that will be provided by pkg-config 
> file installed in target sysroot
> +        # The wrapper will call a native vapigen
> +        cat > ${B}/vapigen-wrapper << EOF
> +#!/bin/sh
> +vapigen-${SHRT_VER} ${GIRDIR_OPT} "\$@"
> +EOF
> +        chmod +x ${B}/vapigen-wrapper
> +}
> +
> +EXTRA_OECONF += " --disable-valadoc"
> +
> +# Vapigen wrapper needs to be available system-wide, because it will be used
> +# to build vapi files from all other packages with vala support
> +do_install:append:class-target() {
> +        install -d ${D}${bindir_crossscripts}/
> +        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}/
> +}
> +
> +# Put vapigen wrapper into target sysroot so that it can be used when 
> building
> +# vapi files.
> +SYSROOT_DIRS += "${bindir_crossscripts}"
> +
> +inherit multilib_script
> +MULTILIB_SCRIPTS = "${PN}:${bindir}/vala-gen-introspect-0.56"
> +
> +SYSROOT_PREPROCESS_FUNCS:append:class-target = " vapigen_sysroot_preprocess"
> +vapigen_sysroot_preprocess() {
> +        # Tweak the vapigen name in the vapigen pkgconfig file, so that it 
> picks
> +        # up our wrapper.
> +        sed -i \
> +           -e "s|vapigen=.*|vapigen=${bindir_crossscripts}/vapigen-wrapper|" 
> \
> +           ${SYSROOT_DESTDIR}${libdir}/pkgconfig/vapigen-${SHRT_VER}.pc
> +}
> +
> +SSTATE_SCAN_FILES += "vapigen-wrapper"
> +
> +PACKAGE_PREPROCESS_FUNCS += "vala_package_preprocess"
> +
> +vala_package_preprocess () {
> +       rm -rf ${PKGD}${bindir_crossscripts}
> +}
> +
> --
> 2.44.0
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#196927): 
https://lists.openembedded.org/g/openembedded-core/message/196927
Mute This Topic: https://lists.openembedded.org/mt/104858861/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to