Message ID | 20161101141448.14792-1-arnout@mind.be |
---|---|
State | Changes Requested |
Headers | show |
Hello, On Tue, 1 Nov 2016 15:14:48 +0100, Arnout Vandecappelle (Essensium/Mind) wrote: > +# The configure scripts finds PYSITEDIR as the python_lib directory of > +# host-python, and then prepends DESTDIR in front of it. So we end up > +# installing things in $(TARGET_DIR)/$(HOST_DIR)/usr/lib/python which is > +# clearly wrong. > +# Patching owfs to do the right thing is not trivial, it's much easier to > +# override the PYSITEDIR variable in make. That, in turn, is easier to do by > +# setting OWFS_MAKE, otherwise both OWFS_INSTALL_STAGING_OPTS and > +# OWFS_INSTALL_TARGET_OPTS would have to be overridden > +OWFS_MAKE = $(MAKE) PYSITEDIR=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages Could we instead introduce a OWFS_MAKE_OPTS variable? Yes, that's a slightly larger change, but it's our usual pattern to handle such situations, so I'd prefer to have it handled like this in owfs as well. Thanks, Thomas
On 01-11-16 15:36, Thomas Petazzoni wrote: > Hello, > > On Tue, 1 Nov 2016 15:14:48 +0100, Arnout Vandecappelle > (Essensium/Mind) wrote: > >> +# The configure scripts finds PYSITEDIR as the python_lib directory of >> +# host-python, and then prepends DESTDIR in front of it. So we end up >> +# installing things in $(TARGET_DIR)/$(HOST_DIR)/usr/lib/python which is >> +# clearly wrong. >> +# Patching owfs to do the right thing is not trivial, it's much easier to >> +# override the PYSITEDIR variable in make. That, in turn, is easier to do by >> +# setting OWFS_MAKE, otherwise both OWFS_INSTALL_STAGING_OPTS and >> +# OWFS_INSTALL_TARGET_OPTS would have to be overridden >> +OWFS_MAKE = $(MAKE) PYSITEDIR=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages > > Could we instead introduce a OWFS_MAKE_OPTS variable? Yes, that's a > slightly larger change, but it's our usual pattern to handle such > situations, so I'd prefer to have it handled like this in owfs as well. You mean: OWFS_MAKE_OPTS += PYSITEDIR=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages and then outside of the condition: OWFS_MAKE = $(MAKE) $(OWFS_MAKE_OPTS) ? Regards, Arnout > > Thanks, > > Thomas >
Hello, On Tue, 1 Nov 2016 15:51:09 +0100, Arnout Vandecappelle wrote: > > Could we instead introduce a OWFS_MAKE_OPTS variable? Yes, that's a > > slightly larger change, but it's our usual pattern to handle such > > situations, so I'd prefer to have it handled like this in owfs as well. > > You mean: > > OWFS_MAKE_OPTS += PYSITEDIR=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages > > and then outside of the condition: > > OWFS_MAKE = $(MAKE) $(OWFS_MAKE_OPTS) Yes, considering what we have in the autotools package infrastructure right now. However, I find our usage of those variables in the infrastructure a bit weird: - We use <pkg>_MAKE_OPTS only during the build - We use <pkg>_INSTALL_{TARGET,STAGING}_OPTS at install time, with a default value of DESTDIR=$(..._DIR) install, which has sometimes caused some issues as people forgot about it. Maybe we should use <pkg>_MAKE_OPTS also at install time? Best regards, Thomas
On 01-11-16 15:51, Arnout Vandecappelle wrote: > > > On 01-11-16 15:36, Thomas Petazzoni wrote: >> Hello, >> >> On Tue, 1 Nov 2016 15:14:48 +0100, Arnout Vandecappelle >> (Essensium/Mind) wrote: >> >>> +# The configure scripts finds PYSITEDIR as the python_lib directory of >>> +# host-python, and then prepends DESTDIR in front of it. So we end up >>> +# installing things in $(TARGET_DIR)/$(HOST_DIR)/usr/lib/python which is >>> +# clearly wrong. >>> +# Patching owfs to do the right thing is not trivial, it's much easier to >>> +# override the PYSITEDIR variable in make. That, in turn, is easier to do by >>> +# setting OWFS_MAKE, otherwise both OWFS_INSTALL_STAGING_OPTS and >>> +# OWFS_INSTALL_TARGET_OPTS would have to be overridden >>> +OWFS_MAKE = $(MAKE) PYSITEDIR=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages >> >> Could we instead introduce a OWFS_MAKE_OPTS variable? Yes, that's a >> slightly larger change, but it's our usual pattern to handle such >> situations, so I'd prefer to have it handled like this in owfs as well. > > You mean: > > OWFS_MAKE_OPTS += PYSITEDIR=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages > > and then outside of the condition: > > OWFS_MAKE = $(MAKE) $(OWFS_MAKE_OPTS) It'll have to be something different from _MAKE_OPTS though, because _MAKE_OPTS is already taken by the autotools package infra. Ideally, _MAKE_OPTS would be used in the autotools install commands as well. However, _MAKE_OPTS is sometimes used to specify the target (e.g. SETSERIAL_MAKE_OPTS = setserial) and sometimes to specify additional options (e.g. TN5250_MAKE_OPTS = CPPFLAGS=""). So it'd have to be split up into a _MAKE_OPTS and _MAKE_TARGET (and the existing _INSTALL_STAGING/TARGET_OPTS would have to becom _TARGET as well). In short, what you're asking is not a trivial change :-) Regards, Arnout > > ? > > Regards, > Arnout > > >> >> Thanks, >> >> Thomas >> >
diff --git a/package/owfs/owfs.mk b/package/owfs/owfs.mk index 83614af..7ee8915 100644 --- a/package/owfs/owfs.mk +++ b/package/owfs/owfs.mk @@ -66,6 +66,15 @@ OWFS_MAKE_ENV += \ _python_prefix=/usr \ _python_exec_prefix=/usr OWFS_DEPENDENCIES += python host-swig +# The configure scripts finds PYSITEDIR as the python_lib directory of +# host-python, and then prepends DESTDIR in front of it. So we end up +# installing things in $(TARGET_DIR)/$(HOST_DIR)/usr/lib/python which is +# clearly wrong. +# Patching owfs to do the right thing is not trivial, it's much easier to +# override the PYSITEDIR variable in make. That, in turn, is easier to do by +# setting OWFS_MAKE, otherwise both OWFS_INSTALL_STAGING_OPTS and +# OWFS_INSTALL_TARGET_OPTS would have to be overridden +OWFS_MAKE = $(MAKE) PYSITEDIR=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages else OWFS_CONF_OPTS += --disable-owpython --without-python endif
The owfs build system has a pretty complicated way of configuring the Python bindings. It ends up with setting PYSITEDIR to the host-python site-packages path, and it still prepends DESTDIR to that. As a simple fix, override PYSITEDIR with the correct value on the make command line. Fixes: http://autobuild.buildroot.net/results/200/200846650641494290aa67d28ea6fb2c9351d4dc http://autobuild.buildroot.net/results/99c/99c00248dd8b00071bcdbc73336cc276c68a4c16 and many more Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> --- package/owfs/owfs.mk | 9 +++++++++ 1 file changed, 9 insertions(+)