diff mbox

glmark2: depend on host-python

Message ID 1443194731-52284-1-git-send-email-Vincent.Riera@imgtec.com
State Superseded
Headers show

Commit Message

Vicente Olivert Riera Sept. 25, 2015, 3:25 p.m. UTC
The waf build system of glmark2 needs Python 2 as stated on its README
file:

python 2.x (>= 2.4) for the build system (waf)

Building it with a system with Python 3 as the default Python version
will result on a failure like this one:

File "waflib/Utils.py", line 199
    except OSError ,e:
                   ^
SyntaxError: invalid syntax

So, in order to fix this, make this package depending on host-python and
also run the waf script using $(HOST_DIR)/usr/bin/python2.

At the same time fix a typo in the .mk file. The python-config script is
localed at $(HOST_DIR)/usr/bin/ instead of $(STAGING_DIR)/usr/bin/.

Fixes:

  http://autobuild.buildroot.net/results/fc6/fc6cd2a90bbb0e6f80f6c4afaae1430f82e54046/

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
 package/glmark2/glmark2.mk |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

Comments

Vicente Olivert Riera Sept. 25, 2015, 3:27 p.m. UTC | #1
Maintainer please,

On 09/25/2015 04:25 PM, Vicente Olivert Riera wrote:
> The waf build system of glmark2 needs Python 2 as stated on its README
> file:
> 
> python 2.x (>= 2.4) for the build system (waf)
> 
> Building it with a system with Python 3 as the default Python version
> will result on a failure like this one:
> 
> File "waflib/Utils.py", line 199
>     except OSError ,e:
>                    ^
> SyntaxError: invalid syntax
> 
> So, in order to fix this, make this package depending on host-python and
> also run the waf script using $(HOST_DIR)/usr/bin/python2.
> 
> At the same time fix a typo in the .mk file. The python-config script is
> localed at $(HOST_DIR)/usr/bin/ instead of $(STAGING_DIR)/usr/bin/.

s/localed/located/

Sorry,

Vincent.

> 
> Fixes:
> 
>   http://autobuild.buildroot.net/results/fc6/fc6cd2a90bbb0e6f80f6c4afaae1430f82e54046/
> 
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> ---
>  package/glmark2/glmark2.mk |   10 +++++-----
>  1 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/package/glmark2/glmark2.mk b/package/glmark2/glmark2.mk
> index ffaea73..32112b4 100644
> --- a/package/glmark2/glmark2.mk
> +++ b/package/glmark2/glmark2.mk
> @@ -8,7 +8,7 @@ GLMARK2_VERSION = 499aa81a68fb4c8aac1c80f0d6a4cce05941c4cc
>  GLMARK2_SITE = $(call github,glmark2,glmark2,$(GLMARK2_VERSION))
>  GLMARK2_LICENSE = GPLv3+ SGIv1
>  GLMARK2_LICENSE_FILES = COPYING COPYING.SGI
> -GLMARK2_DEPENDENCIES = host-pkgconf jpeg libpng \
> +GLMARK2_DEPENDENCIES = host-pkgconf host-python jpeg libpng \
>  	$(if $(BR2_PACKAGE_HAS_LIBEGL),libegl) \
>  	$(if $(BR2_PACKAGE_HAS_LIBGLES),libgles) \
>  	$(if $(BR2_PACKAGE_HAS_LIBGL),libgl)
> @@ -47,21 +47,21 @@ GLMARK2_CONF_OPTS += \
>  
>  define GLMARK2_CONFIGURE_CMDS
>  	(cd $(@D); \
> -		PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python-config" \
> +		PYTHON_CONFIG="$(HOST_DIR)/usr/bin/python-config" \
>  		python_LDFLAGS="" \
>  		python_LIBDIR="" \
>  		$(TARGET_CONFIGURE_OPTS) \
>  		$(GLMARK2_CONF_ENV) \
> -		./waf configure $(GLMARK2_CONF_OPTS) \
> +		$(HOST_DIR)/usr/bin/python2 ./waf configure $(GLMARK2_CONF_OPTS) \
>  	)
>  endef
>  
>  define GLMARK2_BUILD_CMDS
> -	cd $(@D) && $(TARGET_MAKE_ENV) ./waf
> +	cd $(@D) && $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/python2 ./waf
>  endef
>  
>  define GLMARK2_INSTALL_TARGET_CMDS
> -	cd $(@D) && $(TARGET_MAKE_ENV) ./waf install --destdir=$(TARGET_DIR)
> +	cd $(@D) && $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/python2 ./waf install --destdir=$(TARGET_DIR)
>  endef
>  
>  $(eval $(generic-package))
>
Bernd Kuhls Sept. 27, 2015, 11:21 a.m. UTC | #2
Am Fri, 25 Sep 2015 16:25:31 +0100 schrieb Vicente Olivert Riera:

> The waf build system of glmark2 needs Python 2 as stated on its README
> file:
> 
> python 2.x (>= 2.4) for the build system (waf)

Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de>
(compile tested)

Regards, Bernd
Thomas Petazzoni Sept. 27, 2015, 7:21 p.m. UTC | #3
Vicente,

On Fri, 25 Sep 2015 16:25:31 +0100, Vicente Olivert Riera wrote:
> The waf build system of glmark2 needs Python 2 as stated on its README
> file:
> 
> python 2.x (>= 2.4) for the build system (waf)
> 
> Building it with a system with Python 3 as the default Python version
> will result on a failure like this one:
> 
> File "waflib/Utils.py", line 199
>     except OSError ,e:
>                    ^
> SyntaxError: invalid syntax
> 
> So, in order to fix this, make this package depending on host-python and
> also run the waf script using $(HOST_DIR)/usr/bin/python2.

This part is fine.

> At the same time fix a typo in the .mk file. The python-config script is
> localed at $(HOST_DIR)/usr/bin/ instead of $(STAGING_DIR)/usr/bin/.

But I'm not sure at all about this part.
$(HOST_DIR)/usr/bin/python-config will give results that are valid to
build things against the *host* Python, while
$(STAGING_DIR)/usr/bin/python-config will give results that are valid
to build things against the *target* Python.

Therefore, it is necessary to look into the Waf logic to understand how
PYTHON_CONFIG is used. Is it used to build just things that used
during the build process and therefore probably built against the host
Python, or is it about building things against the target Python?

From a quick look, I don't see anything in the glmark2 source code that
would need Python. It's really only waf itself that uses Python. So I
don't quite see where PYTHON_CONFIG can actually be useful...

Thomas
Vicente Olivert Riera Sept. 28, 2015, 8:33 a.m. UTC | #4
Hi Thomas,

On 09/27/2015 08:21 PM, Thomas Petazzoni wrote:
> Vicente,
> 
> On Fri, 25 Sep 2015 16:25:31 +0100, Vicente Olivert Riera wrote:
>> The waf build system of glmark2 needs Python 2 as stated on its README
>> file:
>>
>> python 2.x (>= 2.4) for the build system (waf)
>>
>> Building it with a system with Python 3 as the default Python version
>> will result on a failure like this one:
>>
>> File "waflib/Utils.py", line 199
>>     except OSError ,e:
>>                    ^
>> SyntaxError: invalid syntax
>>
>> So, in order to fix this, make this package depending on host-python and
>> also run the waf script using $(HOST_DIR)/usr/bin/python2.
> 
> This part is fine.
> 
>> At the same time fix a typo in the .mk file. The python-config script is
>> localed at $(HOST_DIR)/usr/bin/ instead of $(STAGING_DIR)/usr/bin/.
> 
> But I'm not sure at all about this part.
> $(HOST_DIR)/usr/bin/python-config will give results that are valid to
> build things against the *host* Python, while
> $(STAGING_DIR)/usr/bin/python-config will give results that are valid
> to build things against the *target* Python.
> 
> Therefore, it is necessary to look into the Waf logic to understand how
> PYTHON_CONFIG is used. Is it used to build just things that used
> during the build process and therefore probably built against the host
> Python, or is it about building things against the target Python?
> 
> From a quick look, I don't see anything in the glmark2 source code that
> would need Python. It's really only waf itself that uses Python. So I
> don't quite see where PYTHON_CONFIG can actually be useful...

Exactly. In fact, I managed to build the package when the value was
$(STAGING_DIR)/usr/bin/python-config which didn't exist.

Should we remove it?

Regards,

Vincent.


> 
> Thomas
>
Thomas Petazzoni Sept. 28, 2015, 8:52 p.m. UTC | #5
Vicente,

On Mon, 28 Sep 2015 09:33:07 +0100, Vicente Olivert Riera wrote:

> > From a quick look, I don't see anything in the glmark2 source code that
> > would need Python. It's really only waf itself that uses Python. So I
> > don't quite see where PYTHON_CONFIG can actually be useful...
> 
> Exactly. In fact, I managed to build the package when the value was
> $(STAGING_DIR)/usr/bin/python-config which didn't exist.
> 
> Should we remove it?

I don't know. It is there since when the package was originally
introduced by Spenser, so I have no idea why those three PYTHON_*
variables were added.

If the build works for you without those variables, then I would
suggest to remove them, and see what the autobuilders say.

What do you think?

Thomas
Vicente Olivert Riera Sept. 29, 2015, 6:13 p.m. UTC | #6
Hello Thomas,

On 28/09/15 21:52, Thomas Petazzoni wrote:
> Vicente,
>
> On Mon, 28 Sep 2015 09:33:07 +0100, Vicente Olivert Riera wrote:
>
>>>  From a quick look, I don't see anything in the glmark2 source code that
>>> would need Python. It's really only waf itself that uses Python. So I
>>> don't quite see where PYTHON_CONFIG can actually be useful...
>>
>> Exactly. In fact, I managed to build the package when the value was
>> $(STAGING_DIR)/usr/bin/python-config which didn't exist.
>>
>> Should we remove it?
>
> I don't know. It is there since when the package was originally
> introduced by Spenser, so I have no idea why those three PYTHON_*
> variables were added.
>
> If the build works for you without those variables, then I would
> suggest to remove them, and see what the autobuilders say.


I remember that I already tried to remove them and it built fine, but 
anyway I have double checked it just in case, and yes, I confirm that it 
builds fine.

> What do you think?

Yeah, remove them and see if there is any autobuilder issue. I have sent 
an v2.

Regards,

Vincent.

> Thomas
>
diff mbox

Patch

diff --git a/package/glmark2/glmark2.mk b/package/glmark2/glmark2.mk
index ffaea73..32112b4 100644
--- a/package/glmark2/glmark2.mk
+++ b/package/glmark2/glmark2.mk
@@ -8,7 +8,7 @@  GLMARK2_VERSION = 499aa81a68fb4c8aac1c80f0d6a4cce05941c4cc
 GLMARK2_SITE = $(call github,glmark2,glmark2,$(GLMARK2_VERSION))
 GLMARK2_LICENSE = GPLv3+ SGIv1
 GLMARK2_LICENSE_FILES = COPYING COPYING.SGI
-GLMARK2_DEPENDENCIES = host-pkgconf jpeg libpng \
+GLMARK2_DEPENDENCIES = host-pkgconf host-python jpeg libpng \
 	$(if $(BR2_PACKAGE_HAS_LIBEGL),libegl) \
 	$(if $(BR2_PACKAGE_HAS_LIBGLES),libgles) \
 	$(if $(BR2_PACKAGE_HAS_LIBGL),libgl)
@@ -47,21 +47,21 @@  GLMARK2_CONF_OPTS += \
 
 define GLMARK2_CONFIGURE_CMDS
 	(cd $(@D); \
-		PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python-config" \
+		PYTHON_CONFIG="$(HOST_DIR)/usr/bin/python-config" \
 		python_LDFLAGS="" \
 		python_LIBDIR="" \
 		$(TARGET_CONFIGURE_OPTS) \
 		$(GLMARK2_CONF_ENV) \
-		./waf configure $(GLMARK2_CONF_OPTS) \
+		$(HOST_DIR)/usr/bin/python2 ./waf configure $(GLMARK2_CONF_OPTS) \
 	)
 endef
 
 define GLMARK2_BUILD_CMDS
-	cd $(@D) && $(TARGET_MAKE_ENV) ./waf
+	cd $(@D) && $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/python2 ./waf
 endef
 
 define GLMARK2_INSTALL_TARGET_CMDS
-	cd $(@D) && $(TARGET_MAKE_ENV) ./waf install --destdir=$(TARGET_DIR)
+	cd $(@D) && $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/python2 ./waf install --destdir=$(TARGET_DIR)
 endef
 
 $(eval $(generic-package))