Date
1 - 13 of 13
[PATCHv2] gcr: add recipe for gcr-4, needed to build with gtk4
Markus Volk
gcr-3 recipe is still needed for gnome projects that stick to gtk+3, rena=
me to gcr3. Signed-off-by: Markus Volk <f_l_k@...> --- ...build-fix-one-parallel-build-failure.patch | 0 ...1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch | 0 .../gcr/{gcr_3.40.0.bb =3D> gcr3_3.40.0.bb} | 8 ++- meta/recipes-gnome/gcr/gcr_4.0.0.bb | 56 +++++++++++++++++++ 4 files changed, 62 insertions(+), 2 deletions(-) rename meta/recipes-gnome/gcr/{gcr =3D> gcr3}/0001-gcr-meson.build-fix-o= ne-parallel-build-failure.patch (100%) rename meta/recipes-gnome/gcr/{gcr =3D> gcr3}/b3ca1d02bb0148ca787ac4aead= 164d7c8ce2c4d8.patch (100%) rename meta/recipes-gnome/gcr/{gcr_3.40.0.bb =3D> gcr3_3.40.0.bb} (87%) create mode 100644 meta/recipes-gnome/gcr/gcr_4.0.0.bb diff --git a/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-para= llel-build-failure.patch b/meta/recipes-gnome/gcr/gcr3/0001-gcr-meson.bui= ld-fix-one-parallel-build-failure.patch similarity index 100% rename from meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-paral= lel-build-failure.patch rename to meta/recipes-gnome/gcr/gcr3/0001-gcr-meson.build-fix-one-parall= el-build-failure.patch diff --git a/meta/recipes-gnome/gcr/gcr/b3ca1d02bb0148ca787ac4aead164d7c8= ce2c4d8.patch b/meta/recipes-gnome/gcr/gcr3/b3ca1d02bb0148ca787ac4aead164= d7c8ce2c4d8.patch similarity index 100% rename from meta/recipes-gnome/gcr/gcr/b3ca1d02bb0148ca787ac4aead164d7c8c= e2c4d8.patch rename to meta/recipes-gnome/gcr/gcr3/b3ca1d02bb0148ca787ac4aead164d7c8ce= 2c4d8.patch diff --git a/meta/recipes-gnome/gcr/gcr_3.40.0.bb b/meta/recipes-gnome/gc= r/gcr3_3.40.0.bb similarity index 87% rename from meta/recipes-gnome/gcr/gcr_3.40.0.bb rename to meta/recipes-gnome/gcr/gcr3_3.40.0.bb index 917be5938b..5318768db6 100644 --- a/meta/recipes-gnome/gcr/gcr_3.40.0.bb +++ b/meta/recipes-gnome/gcr/gcr3_3.40.0.bb @@ -20,11 +20,15 @@ GTKDOC_MESON_OPTION =3D "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 =3D "[^\d\.](?P<pver>\d+\.(?!9\d+)(\d*[02468])+(\.\= d+)+)\.tar" =20 -SRC_URI +=3D "file://0001-gcr-meson.build-fix-one-parallel-build-failure= .patch \=20 - file://b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch" +SRC_URI =3D " \ + https://download.gnome.org/sources/gcr/3.40/gcr-${PV}.tar.xz;name=3Darc= hive \ + file://0001-gcr-meson.build-fix-one-parallel-build-failure.patch \ + file://b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch" =20 SRC_URI[archive.sha256sum] =3D "b9d3645a5fd953a54285cc64d4fc046736463dbd= 4dcc25caf5c7b59bed3027f5" =20 +S =3D "${WORKDIR}/gcr-${PV}" + PACKAGECONFIG ??=3D " \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ diff --git a/meta/recipes-gnome/gcr/gcr_4.0.0.bb b/meta/recipes-gnome/gcr= /gcr_4.0.0.bb new file mode 100644 index 0000000000..fafc85e6a3 --- /dev/null +++ b/meta/recipes-gnome/gcr/gcr_4.0.0.bb @@ -0,0 +1,56 @@ +SUMMARY =3D "A library for bits of crypto UI and parsing etc" +DESCRIPTION =3D "GCR is a library for displaying certificates, and crypt= o UI, \ +accessing key stores. It also provides the viewer for crypto files on th= e \ +GNOME desktop." +HOMEPAGE =3D "https://gitlab.gnome.org/GNOME/gcr" +BUGTRACKER =3D "https://gitlab.gnome.org/GNOME/gcr/issues" + +LICENSE =3D "GPL-2.0-only" +LIC_FILES_CHKSUM =3D "file://COPYING;md5=3D55ca817ccb7d5b5b66355690e9abc= 605" + +DEPENDS =3D "p11-kit glib-2.0 libgcrypt gnupg-native libsecret \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-nati= ve', '', d)}" + +CACHED_CONFIGUREVARS +=3D "ac_cv_path_GPG=3D'gpg2'" + +CFLAGS +=3D "-D_GNU_SOURCE" + +GNOMEBASEBUILDCLASS =3D "meson" +GTKDOC_MESON_OPTION =3D "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 =3D "[^\d\.](?P<pver>\d+\.(?!9\d+)(\d*[02468])+(\.\= d+)+)\.tar" + +SRC_URI[archive.sha256sum] =3D "c45855924f0ee7bab43e2dd38bfafd2ac815c6e9= 864341c0161e171173dcec7c" + +PACKAGECONFIG ??=3D " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ +" +PACKAGECONFIG[gtk] =3D "-Dgtk4=3Dtrue,-Dgtk4=3Dfalse,gtk4" +PACKAGECONFIG[ssh_agent] =3D "-Dssh_agent=3Dtrue,-Dssh_agent=3Dfalse,,op= enssh" +#'Use systemd socket activation for server programs' +PACKAGECONFIG[systemd] =3D "-Dsystemd=3Denabled,-Dsystemd=3Ddisabled,sys= temd" + +FILES:${PN} +=3D " \ + ${datadir}/dbus-1 \ + ${datadir}/gcr-4 \ +" + +# http://errors.yoctoproject.org/Errors/Details/20229/ +ARM_INSTRUCTION_SET:armv4 =3D "arm" +ARM_INSTRUCTION_SET:armv5 =3D "arm" +ARM_INSTRUCTION_SET:armv6 =3D "arm" + +EXTRA_OEMESON +=3D "--cross-file ${WORKDIR}/meson-${PN}.cross" +do_write_config:append() { + cat >${WORKDIR}/meson-${PN}.cross <<EOF +[binaries] +gpg2 =3D '${bindir}/gpg2' +EOF +} + +do_configure:prepend() { + sed -i "s|ssh_add_path =3D find_program('ssh-add', required: get_opt= ion('ssh_agent')).full_path()|ssh_add_path =3D '${bindir}/ssh-add'|" ${S}= /meson.build + sed -i "s|ssh_agent_path =3D find_program('ssh-agent', required: get= _option('ssh_agent')).full_path()|ssh_agent_path =3D '${bindir}/ssh-agent= '|" ${S}/meson.build +} --=20 2.34.1 |
|
Alexandre Belloni
Hello,
toggle quoted message
Show quoted text
This causes: stdio: WARNING: Nothing PROVIDES 'gtk4' (but /home/pokybuild/yocto-worker/a-full/build/meta/recipes-gnome/gcr/gcr_4.0.0.bb DEPENDS on or otherwise requires it) stdio: WARNING: Nothing RPROVIDES 'gcr' (but /home/pokybuild/yocto-worker/a-full/build/meta/recipes-gnome/gcr/gcr_4.0.0.bb RDEPENDS on or otherwise requires it) stdio: WARNING: Nothing RPROVIDES 'gcr-dev' (but /home/pokybuild/yocto-worker/a-full/build/meta/recipes-gnome/gcr/gcr_4.0.0.bb RDEPENDS on or otherwise requires it) On 27/11/2022 13:27:44+0100, Markus Volk wrote:
gcr-3 recipe is still needed for gnome projects that stick to gtk+3, rename to gcr3. --
Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com |
|
Markus Volk
Am So, 27. Nov 2022 um 20:11:34 +0100 schrieb Alexandre Belloni via lists.openembedded.org <alexandre.belloni=bootlin.com@...>:
mmh, i guess possible solutions would be to move either gtk4 to oe-core or gcr4 to meta-gnome |
|
Alexander Kanavin
I would suggest that gtk4 is moved to core. The time has come. Alex On Sun 27. Nov 2022 at 20.38, Markus Volk <f_l_k@...> wrote:
|
|
Markus Volk
gcr-3 recipe is still needed for gnome projects that stick to gtk+3, rena=
me to gcr3. Signed-off-by: Markus Volk <f_l_k@...> --- ...build-fix-one-parallel-build-failure.patch | 0 ...1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch | 0 .../gcr/{gcr_3.40.0.bb =3D> gcr3_3.40.0.bb} | 8 ++- meta/recipes-gnome/gcr/gcr_4.0.0.bb | 58 +++++++++++++++++++ 4 files changed, 64 insertions(+), 2 deletions(-) rename meta/recipes-gnome/gcr/{gcr =3D> gcr3}/0001-gcr-meson.build-fix-o= ne-parallel-build-failure.patch (100%) rename meta/recipes-gnome/gcr/{gcr =3D> gcr3}/b3ca1d02bb0148ca787ac4aead= 164d7c8ce2c4d8.patch (100%) rename meta/recipes-gnome/gcr/{gcr_3.40.0.bb =3D> gcr3_3.40.0.bb} (87%) create mode 100644 meta/recipes-gnome/gcr/gcr_4.0.0.bb diff --git a/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-para= llel-build-failure.patch b/meta/recipes-gnome/gcr/gcr3/0001-gcr-meson.bui= ld-fix-one-parallel-build-failure.patch similarity index 100% rename from meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-paral= lel-build-failure.patch rename to meta/recipes-gnome/gcr/gcr3/0001-gcr-meson.build-fix-one-parall= el-build-failure.patch diff --git a/meta/recipes-gnome/gcr/gcr/b3ca1d02bb0148ca787ac4aead164d7c8= ce2c4d8.patch b/meta/recipes-gnome/gcr/gcr3/b3ca1d02bb0148ca787ac4aead164= d7c8ce2c4d8.patch similarity index 100% rename from meta/recipes-gnome/gcr/gcr/b3ca1d02bb0148ca787ac4aead164d7c8c= e2c4d8.patch rename to meta/recipes-gnome/gcr/gcr3/b3ca1d02bb0148ca787ac4aead164d7c8ce= 2c4d8.patch diff --git a/meta/recipes-gnome/gcr/gcr_3.40.0.bb b/meta/recipes-gnome/gc= r/gcr3_3.40.0.bb similarity index 87% rename from meta/recipes-gnome/gcr/gcr_3.40.0.bb rename to meta/recipes-gnome/gcr/gcr3_3.40.0.bb index 917be5938b..5318768db6 100644 --- a/meta/recipes-gnome/gcr/gcr_3.40.0.bb +++ b/meta/recipes-gnome/gcr/gcr3_3.40.0.bb @@ -20,11 +20,15 @@ GTKDOC_MESON_OPTION =3D "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 =3D "[^\d\.](?P<pver>\d+\.(?!9\d+)(\d*[02468])+(\.\= d+)+)\.tar" =20 -SRC_URI +=3D "file://0001-gcr-meson.build-fix-one-parallel-build-failure= .patch \=20 - file://b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch" +SRC_URI =3D " \ + https://download.gnome.org/sources/gcr/3.40/gcr-${PV}.tar.xz;name=3Darc= hive \ + file://0001-gcr-meson.build-fix-one-parallel-build-failure.patch \ + file://b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch" =20 SRC_URI[archive.sha256sum] =3D "b9d3645a5fd953a54285cc64d4fc046736463dbd= 4dcc25caf5c7b59bed3027f5" =20 +S =3D "${WORKDIR}/gcr-${PV}" + PACKAGECONFIG ??=3D " \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ diff --git a/meta/recipes-gnome/gcr/gcr_4.0.0.bb b/meta/recipes-gnome/gcr= /gcr_4.0.0.bb new file mode 100644 index 0000000000..4dede60544 --- /dev/null +++ b/meta/recipes-gnome/gcr/gcr_4.0.0.bb @@ -0,0 +1,58 @@ +SUMMARY =3D "A library for bits of crypto UI and parsing etc" +DESCRIPTION =3D "GCR is a library for displaying certificates, and crypt= o UI, \ +accessing key stores. It also provides the viewer for crypto files on th= e \ +GNOME desktop." +HOMEPAGE =3D "https://gitlab.gnome.org/GNOME/gcr" +BUGTRACKER =3D "https://gitlab.gnome.org/GNOME/gcr/issues" + +LICENSE =3D "GPL-2.0-only" +LIC_FILES_CHKSUM =3D "file://COPYING;md5=3D55ca817ccb7d5b5b66355690e9abc= 605" + +DEPENDS =3D "p11-kit glib-2.0 libgcrypt gnupg-native \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-nati= ve', '', d)}" + +CACHED_CONFIGUREVARS +=3D "ac_cv_path_GPG=3D'gpg2'" + +CFLAGS +=3D "-D_GNU_SOURCE" + +GNOMEBASEBUILDCLASS =3D "meson" +GTKDOC_MESON_OPTION =3D "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 =3D "[^\d\.](?P<pver>\d+\.(?!9\d+)(\d*[02468])+(\.\= d+)+)\.tar" + +SRC_URI[archive.sha256sum] =3D "c45855924f0ee7bab43e2dd38bfafd2ac815c6e9= 864341c0161e171173dcec7c" + +PACKAGECONFIG ??=3D " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ +" +PACKAGECONFIG[gtk] =3D "-Dgtk4=3Dtrue,-Dgtk4=3Dfalse,gtk4" +PACKAGECONFIG[ssh_agent] =3D "-Dssh_agent=3Dtrue,-Dssh_agent=3Dfalse,lib= secret,openssh" +#'Use systemd socket activation for server programs' +PACKAGECONFIG[systemd] =3D "-Dsystemd=3Denabled,-Dsystemd=3Ddisabled,sys= temd" + +FILES:${PN} +=3D " \ + ${datadir}/dbus-1 \ + ${datadir}/gcr-4 \ + ${systemd_user_unitdir}/gcr-ssh-agent.socket \ + ${systemd_user_unitdir}/gcr-ssh-agent.service \ +" + +# http://errors.yoctoproject.org/Errors/Details/20229/ +ARM_INSTRUCTION_SET:armv4 =3D "arm" +ARM_INSTRUCTION_SET:armv5 =3D "arm" +ARM_INSTRUCTION_SET:armv6 =3D "arm" + +EXTRA_OEMESON +=3D "--cross-file ${WORKDIR}/meson-${PN}.cross" +do_write_config:append() { + cat >${WORKDIR}/meson-${PN}.cross <<EOF +[binaries] +gpg2 =3D '${bindir}/gpg2' +EOF +} + +do_configure:prepend() { + sed -i "s|ssh_add_path =3D find_program('ssh-add', required: get_opt= ion('ssh_agent')).full_path()|ssh_add_path =3D '${bindir}/ssh-add'|" ${S}= /meson.build + sed -i "s|ssh_agent_path =3D find_program('ssh-agent', required: get= _option('ssh_agent')).full_path()|ssh_agent_path =3D '${bindir}/ssh-agent= '|" ${S}/meson.build +} --=20 2.34.1 |
|
Markus Volk
libsecret dependency has been moved to PACKAGECONFIG since its only needed for the 'ssh_agent' added the ssh_agent service files to FILES:${PN} to avoid an error if ssh_agent PACKAGECONFIG is selected: ERROR: gcr-4.0.0-r0 do_package: QA Issue: gcr: Files/directories were installed but not shipped in any package: /usr/lib/systemd /usr/lib/systemd/user /usr/lib/systemd/user/gcr-ssh-agent.socket /usr/lib/systemd/user/gcr-ssh-agent.service Am Mo, 28. Nov 2022 um 12:22:32 +0100 schrieb Markus Volk <f_l_k@...>:
|
|
Alexander Kanavin
On Mon, 28 Nov 2022 at 12:22, Markus Volk <f_l_k@...> wrote:
+do_configure:prepend() {This needs to be explained. And we need to find a better way to do it, preferably one that is acceptable upstream. Alex |
|
Alexander Kanavin
Ah is it the same issue? Then please backport.
toggle quoted message
Show quoted text
https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/114 Alex On Mon, 28 Nov 2022 at 12:28, Alexander Kanavin via lists.openembedded.org <alex.kanavin=gmail.com@...> wrote:
|
|
Markus Volk
Am Mo, 28. Nov 2022 um 12:28:31 +0100 schrieb Alexander Kanavin <alex.kanavin@...>:
Now thats somehow problematic. I had this issue also with seahorse, that wants to know at build time what targets ssh-keygen path would be. We need a way to look for the targets ssh binary paths but since openssh for whatever reason doesn't support pkgconfig i guess we are forced to hack it. Another possibility would be to add an openssh-native recipe. I sent a patch for that but it was rejected for valid reasons. |
|
Alexander Kanavin
For gcr I suppose we can just disable the ssh stuff if it's not
toggle quoted message
Show quoted text
strictly required. Alex On Mon, 28 Nov 2022 at 12:42, Markus Volk <f_l_k@...> wrote:
|
|
Markus Volk
Am Mo, 28. Nov 2022 um 12:45:54 +0100 schrieb Alexander Kanavin <alex.kanavin@...>:
I've noticed that you sent a patch to gcr that would fix it but 4.0.0 will presumably still search for the external ssh programs even if ssh_agent is disabled. It's an optional feature, but not being able to activate it feels like a hack as well to me. |
|
Alexander Kanavin
It won’t if you add the patch. I have tested that: (That’s a wip commit just to be aware of issues) We have plenty of options everywhere that are disabled specifically because there is no easy way to activate them. There is no promise to fulfil requirements for every upstream option out there. If you feel that this one in particular fulfills an important use case then you need to add a patch that allows setting the location of ssh items with meson options and submit it upstream. Alex On Mon 28. Nov 2022 at 13.07, Markus Volk <f_l_k@...> wrote:
|
|
Markus Volk
Am Mo, 28. Nov 2022 um 14:13:36 +0100 schrieb Alexander Kanavin <alex.kanavin@...>: We have plenty of options everywhere that are disabled specifically because there is no easy way to activate them. Fair enough. I've sent a v3 that completely removes the ssh_agent settings and includes your patch |
|