diff mbox series

[meta-gnome,PATCHv2] gnome-terminal: fix search_provider build

Message ID 20240107102723.47876-1-f_l_k@t-online.de
State New
Headers show
Series [meta-gnome,PATCHv2] gnome-terminal: fix search_provider build | expand

Commit Message

Markus Volk Jan. 7, 2024, 10:27 a.m. UTC
currently org.gnome.ShellSearchProvider2.xml is read from host machine and
thus gnome-terminal with search_provider enabled can only be build from a host
system that has gnome-shell installed.

Add an option and set it to STAGING_DATADIR to avoid:

| DEBUG: Executing shell function do_compile
| ninja: error: '/usr/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml', needed by 'src/terminal-search-provider-gdbus-generated.c', missing and no known rule to make it

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 ...-add-option-to-set-dbus_interfacedir.patch | 66 +++++++++++++++++++
 .../gnome-terminal/gnome-terminal_3.50.1.bb   | 10 +--
 2 files changed, 72 insertions(+), 4 deletions(-)
 create mode 100644 meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch

Comments

Alexander Kanavin Jan. 7, 2024, 10:52 a.m. UTC | #1
Pending is strongly discouraged and disliked. Please submit even if it’s
not perfect yet.

Alex

On Sun 7. Jan 2024 at 11.27, Markus Volk <f_l_k@t-online.de> wrote:

> currently org.gnome.ShellSearchProvider2.xml is read from host machine and
> thus gnome-terminal with search_provider enabled can only be build from a
> host
> system that has gnome-shell installed.
>
> Add an option and set it to STAGING_DATADIR to avoid:
>
> | DEBUG: Executing shell function do_compile
> | ninja: error:
> '/usr/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml', needed
> by 'src/terminal-search-provider-gdbus-generated.c', missing and no known
> rule to make it
>
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  ...-add-option-to-set-dbus_interfacedir.patch | 66 +++++++++++++++++++
>  .../gnome-terminal/gnome-terminal_3.50.1.bb   | 10 +--
>  2 files changed, 72 insertions(+), 4 deletions(-)
>  create mode 100644
> meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch
>
> diff --git
> a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch
> b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch
> new file mode 100644
> index 000000000..b9d5fd5ec
> --- /dev/null
> +++
> b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch
> @@ -0,0 +1,66 @@
> +From 5212e85699b59819262165740d3c7a10b6a5c46b Mon Sep 17 00:00:00 2001
> +From: Markus Volk <f_l_k@t-online.de>
> +Date: Sun, 7 Jan 2024 10:40:31 +0100
> +Subject: [PATCH] meson: add an option to set dbus_interface_dir
> +
> +currently org.gnome.ShellSearchProvider2.xml is read from host machine and
> +thus gnome-terminal with search_provider enabled can only be built from a
> host
> +system that has gnome-shell installed.
> +
> +Add an option that allows to set the path manually. This will help to
> cross-compile
> +gnome-terminal on host systems that don't have gnome-shell installed.
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Markus Volk <f_l_k@t-online.de>
> +---
> + meson_options.txt | 7 +++++++
> + src/meson.build   | 7 ++++++-
> + 2 files changed, 13 insertions(+), 1 deletion(-)
> +
> +diff --git a/meson_options.txt b/meson_options.txt
> +index b555ab663..8fece058c 100644
> +--- a/meson_options.txt
> ++++ b/meson_options.txt
> +@@ -13,6 +13,13 @@
> + # You should have received a copy of the GNU General Public License
> + # along with this programme.  If not, see <https://www.gnu.org/licenses/
> >.
> +
> ++option(
> ++  'dbus_interface_dir',
> ++  type: 'string',
> ++  value: '',
> ++  description: 'directory for D-Bus session interface files
> [$datadir/dbus-1/interfaces]',
> ++)
> ++
> + option(
> +   'dbg',
> +   type: 'boolean',
> +diff --git a/src/meson.build b/src/meson.build
> +index 86e287403..1543572cf 100644
> +--- a/src/meson.build
> ++++ b/src/meson.build
> +@@ -224,6 +224,11 @@ server_sources = app_sources + client_util_sources +
> debug_sources + dbus_source
> +
> + if get_option('search_provider')
> +
> ++  dbus_interface_dir = get_option('dbus_interface_dir')
> ++  if dbus_interface_dir == ''
> ++    dbus_interface_dir = gt_prefix / gt_dbusinterfacedir
> ++  endif
> ++
> +   server_sources += files(
> +     'terminal-search-provider.cc',
> +     'terminal-search-provider.hh',
> +@@ -231,7 +236,7 @@ if get_option('search_provider')
> +
> +   server_sources += gnome.gdbus_codegen(
> +     'terminal-search-provider-gdbus-generated',
> +-    gt_prefix / gt_dbusinterfacedir /
> 'org.gnome.ShellSearchProvider2.xml',
> ++    dbus_interface_dir / 'org.gnome.ShellSearchProvider2.xml',
> +     autocleanup: 'none',
> +     install_header: false,
> +     interface_prefix: 'org.gnome.Shell',
> +--
> +2.43.0
> +
> diff --git a/meta-gnome/recipes-gnome/gnome-terminal/
> gnome-terminal_3.50.1.bb b/meta-gnome/recipes-gnome/gnome-terminal/
> gnome-terminal_3.50.1.bb
> index 8616f2c9b..53f11e95f 100644
> --- a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb
> +++ b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb
> @@ -19,15 +19,17 @@ DEPENDS = " \
>      libpcre2 \
>  "
>
> -SRC_URI = "git://
> gitlab.gnome.org/GNOME/gnome-terminal.git;protocol=https;nobranch=1 \
> -           file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
> -           "
> +SRC_URI = " \
> +       git://
> gitlab.gnome.org/GNOME/gnome-terminal.git;protocol=https;nobranch=1 \
> +       file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
> +       file://0001-meson-add-option-to-set-dbus_interfacedir.patch \
> +"
>  SRCREV = "5ac3b8e4bd6fa02651b3c23cedb0a7e1cd769655"
>  S = "${WORKDIR}/git"
>
>  PACKAGECONFIG ?= ""
>  PACKAGECONFIG[nautilus] =
> "-Dnautilus_extension=true,-Dnautilus_extension=false,nautilus,nautilus"
> -PACKAGECONFIG[search_provider] =
> "-Dsearch_provider=true,-Dsearch_provider=false,,gnome-shell"
> +PACKAGECONFIG[search_provider] = "-Dsearch_provider=true
> -Ddbus_interface_dir=${STAGING_DATADIR}/dbus-1/interfaces,-Dsearch_provider=false,gnome-shell"
>
>  FILES:${PN} += " \
>      ${datadir} \
> --
> 2.43.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#108069):
> https://lists.openembedded.org/g/openembedded-devel/message/108069
> Mute This Topic: https://lists.openembedded.org/mt/103575871/1686489
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Markus Volk Jan. 7, 2024, 11:13 a.m. UTC | #2
On Sun, Jan 7 2024 at 11:52:09 AM +01:00:00, Alexander Kanavin 
<alex.kanavin@gmail.com> wrote:
> Pending is strongly discouraged and disliked.

And yet it is a legitimate concern. I'll try to hurry up
diff mbox series

Patch

diff --git a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch
new file mode 100644
index 000000000..b9d5fd5ec
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch
@@ -0,0 +1,66 @@ 
+From 5212e85699b59819262165740d3c7a10b6a5c46b Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Sun, 7 Jan 2024 10:40:31 +0100
+Subject: [PATCH] meson: add an option to set dbus_interface_dir
+
+currently org.gnome.ShellSearchProvider2.xml is read from host machine and
+thus gnome-terminal with search_provider enabled can only be built from a host
+system that has gnome-shell installed.
+
+Add an option that allows to set the path manually. This will help to cross-compile
+gnome-terminal on host systems that don't have gnome-shell installed.
+
+Upstream-Status: Pending
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson_options.txt | 7 +++++++
+ src/meson.build   | 7 ++++++-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/meson_options.txt b/meson_options.txt
+index b555ab663..8fece058c 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -13,6 +13,13 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this programme.  If not, see <https://www.gnu.org/licenses/>.
+ 
++option(
++  'dbus_interface_dir',
++  type: 'string',
++  value: '',
++  description: 'directory for D-Bus session interface files [$datadir/dbus-1/interfaces]',
++)
++
+ option(
+   'dbg',
+   type: 'boolean',
+diff --git a/src/meson.build b/src/meson.build
+index 86e287403..1543572cf 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -224,6 +224,11 @@ server_sources = app_sources + client_util_sources + debug_sources + dbus_source
+ 
+ if get_option('search_provider')
+ 
++  dbus_interface_dir = get_option('dbus_interface_dir')
++  if dbus_interface_dir == ''
++    dbus_interface_dir = gt_prefix / gt_dbusinterfacedir
++  endif
++
+   server_sources += files(
+     'terminal-search-provider.cc',
+     'terminal-search-provider.hh',
+@@ -231,7 +236,7 @@ if get_option('search_provider')
+ 
+   server_sources += gnome.gdbus_codegen(
+     'terminal-search-provider-gdbus-generated',
+-    gt_prefix / gt_dbusinterfacedir / 'org.gnome.ShellSearchProvider2.xml',
++    dbus_interface_dir / 'org.gnome.ShellSearchProvider2.xml',
+     autocleanup: 'none',
+     install_header: false,
+     interface_prefix: 'org.gnome.Shell',
+-- 
+2.43.0
+
diff --git a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb
index 8616f2c9b..53f11e95f 100644
--- a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb
+++ b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb
@@ -19,15 +19,17 @@  DEPENDS = " \
     libpcre2 \
 "
 
-SRC_URI = "git://gitlab.gnome.org/GNOME/gnome-terminal.git;protocol=https;nobranch=1 \
-           file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
-           "
+SRC_URI = " \
+	git://gitlab.gnome.org/GNOME/gnome-terminal.git;protocol=https;nobranch=1 \
+	file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
+	file://0001-meson-add-option-to-set-dbus_interfacedir.patch \
+"
 SRCREV = "5ac3b8e4bd6fa02651b3c23cedb0a7e1cd769655"
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ?= ""
 PACKAGECONFIG[nautilus] = "-Dnautilus_extension=true,-Dnautilus_extension=false,nautilus,nautilus"
-PACKAGECONFIG[search_provider] = "-Dsearch_provider=true,-Dsearch_provider=false,,gnome-shell"
+PACKAGECONFIG[search_provider] = "-Dsearch_provider=true -Ddbus_interface_dir=${STAGING_DATADIR}/dbus-1/interfaces,-Dsearch_provider=false,gnome-shell"
 
 FILES:${PN} += " \
     ${datadir} \