Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2] dbus-python: add host package
Date: Thu, 18 Oct 2018 11:02:40 +0200	[thread overview]
Message-ID: <20181018110240.6cca2742@windsurf> (raw)
In-Reply-To: <20181017214225.22415-1-bgenerous@impinj.com>

Hello Brent,

Thanks for this contribution.

On Wed, 17 Oct 2018 21:42:41 +0000, Brent Generous wrote:
> This can be useful for Python scripts running on a host machine that
> need to connect to a bus on a remote device, e.g. test scripts.
> 
> The target dbus-python depends on dbus instead of selecting it because
> dbus has dependencies that check that it is supported. Using 'select'
> would override those dependencies. For host-dbus, there are no such
> checks -- it's assumed the host has the features neeeded to run dbus, so
> it is okay to just depend on host-dbus.

Correct.

> The pyexpat dependency is not needed, as it is forced on for
> host-python.
> 
> Signed-off-by: Brent Generous <bgenerous@impinj.com>

One thing that I'd like to see is this package added to
package/Config.in.host, and a package/dbus-python/Config.in.host.
Indeed, I continue to dislike "orphan" host packages, i.e host packages
that are neither a build dependency of some package in Buildroot, and
neither available through the menuconfig Host packages menu.

> diff --git a/package/dbus-python/dbus-python.mk b/package/dbus-python/dbus-python.mk
> index da04b7404f..6021b63060 100644
> --- a/package/dbus-python/dbus-python.mk
> +++ b/package/dbus-python/dbus-python.mk
> @@ -12,6 +12,10 @@ DBUS_PYTHON_LICENSE_FILES = COPYING
>  DBUS_PYTHON_DEPENDENCIES = dbus-glib
>  DBUS_PYTHON_CONF_OPTS = --disable-html-docs --disable-api-docs
>  
> +HOST_DBUS_PYTHON_DEPENDENCIES = host-dbus host-dbus-glib \

Why do you need host-dbus here? We don't have a dependency on "dbus"
for the target dbus-python package, so there's no reason to have a
dependency on host-dbus in the host-dbus-python package.

Just like dbus-glib has a dependency on dbus, host-dbus-glib has a
dependency on host-dbus. So it's not great to list host-dbus in
host-dbus-python dependencies, as it makes the dependencies not very
consistent between host and target.

> +				$(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python)

Nit: just one tab for the indentation, don't try to align

> +HOST_DBUS_PYTHON_CONF_OPTS = $(DBUS_PYTHON_CONF_OPTS)

Please repeat --disable-html-docs --disable-api-docs here. It's pretty
dangerous to set host config options equal to target config options. We
can easily add more things to the target config options, without
realizing it's going to affect the host build as well.

>  ifeq ($(BR2_PACKAGE_PYTHON),y)
>  DBUS_PYTHON_DEPENDENCIES += python host-python
>  
> @@ -19,6 +23,11 @@ DBUS_PYTHON_CONF_ENV += \
>  	PYTHON=$(HOST_DIR)/bin/python2 \
>  	PYTHON_INCLUDES="`$(STAGING_DIR)/usr/bin/python2-config --includes`" \
>  	PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python2-config --ldflags`"
> +
> +HOST_DBUS_PYTHON_CONF_ENV += \
> +	PYTHON=$(HOST_DIR)/bin/python2 \
> +	PYTHON_INCLUDES="`$(HOST_DIR)/usr/bin/python2-config --includes`" \
> +	PYTHON_LIBS="`$(HOST_DIR)/usr/bin/python2-config --ldflags`"
>  else
>  DBUS_PYTHON_DEPENDENCIES += python3 host-python3
>  
> @@ -26,6 +35,12 @@ DBUS_PYTHON_CONF_ENV += \
>  	PYTHON=$(HOST_DIR)/bin/python3 \
>  	PYTHON_INCLUDES="`$(STAGING_DIR)/usr/bin/python3-config --includes`" \
>  	PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --ldflags`"
> +
> +HOST_DBUS_PYTHON_CONF_ENV += \
> +	PYTHON=$(HOST_DIR)/bin/python3 \
> +	PYTHON_INCLUDES="`$(HOST_DIR)/usr/bin/python3-config --includes`" \
> +	PYTHON_LIBS="`$(HOST_DIR)/usr/bin/python3-config --ldflags`"
>  endif
>  
>  $(eval $(autotools-package))
> +$(eval $(host-autotools-package))

I think there is an issue here. If you have neither
BR2_PACKAGE_PYTHON=y nor BR2_PACKAGE_PYTHON3=y, then:

	$(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python)

will make you use host-python to build dbus-python.

But then the

ifeq ($(BR2_PACKAGE_PYTHON),y)
... use host python 2.x
else
... use host python 3.x
endif

will make you use python 3.x.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

      reply	other threads:[~2018-10-18  9:02 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-17 21:42 [Buildroot] [PATCH v2] dbus-python: add host package Brent Generous
2018-10-18  9:02 ` Thomas Petazzoni [this message]

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=20181018110240.6cca2742@windsurf \
    --to=thomas.petazzoni@bootlin.com \
    --cc=buildroot@busybox.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox