All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni via buildroot <buildroot@buildroot.org>
To: Gregor Haas <gregorhaas1997@gmail.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>, buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 1/1] package/bmap-tools: add dependency on python-six
Date: Tue, 22 Aug 2023 21:47:55 +0200	[thread overview]
Message-ID: <20230822214755.1af65bb4@windsurf> (raw)
In-Reply-To: <20230814215233.745573-1-gregorhaas1997@gmail.com>

Hello Gregor,

On Mon, 14 Aug 2023 14:52:33 -0700
Gregor Haas <gregorhaas1997@gmail.com> wrote:

> The core bmaptool program provided by this package depends on python-six to run.
> It is normally not an issue to use this program to e.g. finalize target images
> since all host dependencies are copied to the same place. However, it seems that
> bmaptool is configured (at package install time) to use the current host python
> interpreter -- and in the case of per-package builds, this is the interpreter in
> the per-package directory. Finally, without the explicit dependency on
> python-six, this per-package interpreter will not have the necessary packages.
> Therefore, add the required dependencies on python-six to ensure that the
> bmaptool program can work correctly
> 
> Signed-off-by: Gregor Haas <gregorhaas1997@gmail.com>
> ---
>  package/bmap-tools/bmap-tools.mk | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/package/bmap-tools/bmap-tools.mk b/package/bmap-tools/bmap-tools.mk
> index 32399ca151..350286777c 100644
> --- a/package/bmap-tools/bmap-tools.mk
> +++ b/package/bmap-tools/bmap-tools.mk
> @@ -9,6 +9,8 @@ BMAP_TOOLS_SITE = $(call github,intel,bmap-tools,v$(BMAP_TOOLS_VERSION))
>  BMAP_TOOLS_LICENSE = GPL-2.0
>  BMAP_TOOLS_LICENSE_FILES = COPYING
>  BMAP_TOOLS_SETUP_TYPE = setuptools
> +BMAP_TOOLS_DEPENDENCIES += python-six

I think this one should not be needed. The "select" in the Config.in
should be sufficient.

> +HOST_BMAP_TOOLS_DEPENDENCIES += host-python-six

For the host package, I can indeed reproduce the problem. But I think
the issue really is that in the final $(HOST_DIR), we keep the shebang
of the Python interpreter pointing to the per-package directory.
Indeed, my reasoning is that otherwise we will have many similar
problems with other packages, as this is breaking a fundamental
assumption in Buildroot.

I'm thinking about something like this:

diff --git a/Makefile b/Makefile
index f0ff9a1480..00ce64ab15 100644
--- a/Makefile
+++ b/Makefile
@@ -713,6 +713,15 @@ STAGING_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-staging.t
 host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK)
        @$(call MESSAGE,"Finalizing host directory")
        $(call per-package-rsync,$(sort $(PACKAGES)),host,$(HOST_DIR))
+ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
+       $(Q)grep --binary-files=without-match -lrZ '$(PER_PACKAGE_DIR)/[^/]\+/host' $(HOST_DIR) \
+       |while read -d '' f; do \
+               file -b --mime-type "$${f}" | grep -q '^text/' || continue; \
+               printf '%s\0' "$${f}"; \
+       done \
+       |xargs -0 --no-run-if-empty \
+               $(SED) 's:$(PER_PACKAGE_DIR)/[^/]\+/host:$(HOST_DIR):g'
+endif
 
 .PHONY: staging-finalize
 staging-finalize: $(STAGING_DIR_SYMLINK)

Yann, what do you think? (Logic is taken from package/pkg-generic.mk,
which does the conversion from per-package directories of dependencies
to the per-package directory of the package being built, the logic here
is similar, but we switch from the per-package directories to the
global host directory)

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2023-08-22 19:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-14 21:52 [Buildroot] [PATCH 1/1] package/bmap-tools: add dependency on python-six Gregor Haas
2023-08-22 19:47 ` Thomas Petazzoni via buildroot [this message]
2023-08-23 20:17   ` Gregor Haas
2023-08-23 21:04     ` Thomas Petazzoni via buildroot
2023-08-24 19:20   ` Yann E. MORIN
2023-12-21 22:17     ` Gregor Haas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230822214755.1af65bb4@windsurf \
    --to=buildroot@buildroot.org \
    --cc=gregorhaas1997@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=yann.morin.1998@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.