lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 25 Jul 2014 13:43:24 +0200
From:	Thomas Ilsche <thomas.ilsche@...dresden.de>
To:	Namhyung Kim <namhyung@...nel.org>
CC:	Arnaldo Carvalho de Melo <acme@...nel.org>,
	Peter Zijlstra <a.p.zijlstra@...llo.nl>,
	Ingo Molnar <mingo@...nel.org>,
	Paul Mackerras <paulus@...ba.org>,
	Namhyung Kim <namhyung.kim@....com>,
	LKML <linux-kernel@...r.kernel.org>, Jiri Olsa <jolsa@...hat.com>
Subject: Re: [PATCH 2/2] perf tools: Default to python version 2

Hi Namhyung,

apologies for mixing up your first name earlier.

On 2014-07-25 12:24, Namhyung Kim wrote:
> Hi Thomas,
> 
> On Fri, 25 Jul 2014 11:28:55 +0200, Thomas Ilsche wrote:
>> Hi Kim,
>>
>> On 2014-07-25 05:14, Namhyung Kim wrote:
>>> According to PEP 394 recommendation [1], it's more portable to use
>>> python2 rather than plain python to refer python binary version 2.
>>
>> I tried to find out how backwards-compatible this is. python2(-config)
>> was first available in Python 2.7.3 (April 2012), but it is still not
>> available in 2.6.9 (Oct. 2013). So it might be better to use python2
>> as default but fall back to python if python2 is not available.
>>
>> Best,
>> Thomas
>>
>> Signed-off-by: Thomas Ilsche <thomas.ilsche@...dresden.de>
>> ---
>> diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
>> index f4f7f58..1b1bc9c 100644
>> --- a/tools/perf/config/Makefile
>> +++ b/tools/perf/config/Makefile
>> @@ -117,8 +117,8 @@ ifdef PARSER_DEBUG
>>  endif
>>
>>  ifndef NO_LIBPYTHON
>> -  override PYTHON := \
>> -    $(call get-executable-or-default,PYTHON,python)
>> +  PYTHON2 := $(call get-executable-or-default,PYTHON,python2)
> 
> But wouldn't it set PYTHON2 to python2 even if the system doesn't have
> python2 actually?
> 
> 
>> +  override PYTHON := $(if $(PYTHON2),$(PYTHON2),$(call get-executable,python))
> 
> And then it'll set PYTHON to python2, no?
> 

No, get-executable-or-default only returns anything if it is an actual executable
(asserted by a 'command -v' and 'test -f $ -a -x $'). At least this is how I understand
the Makefile code. I also tested it with a Python 2.6.9 (no python2 in path) and it worked
(after fixing some totally unrelated issues in python headers). It will however complain
that "The path 'python2' is not executable." before using python.

> 
>>    override PYTHON_CONFIG := \
>>      $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON)-config)
> 
> 
> I'm thinking about something like below.. but sadly it doesn't work for
> me.. hmm.

Actually this appears to work for me (with 2.6.9 & 2.7.6) and I find this solution more
elegant.

Best,
Thomas

> 
> Thanks,
> Namhyung
> 
> 
> 
> diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
> index 0f4b7fbc4852..60177278a357 100644
> --- a/tools/perf/config/Makefile
> +++ b/tools/perf/config/Makefile
> @@ -121,8 +121,8 @@ ifdef PARSER_DEBUG
>  endif
>  
>  ifndef NO_LIBPYTHON
> -  override PYTHON := \
> -    $(call get-executable-or-default,PYTHON,python2)
> +  PYTHON2 := $(if $(call get-executable,python2),python2,python)
> +  override PYTHON := $(call get-executable-or-default,PYTHON,$(PYTHON2))
>    override PYTHON_CONFIG := \
>      $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON)-config)
>  
> 

-- 
Dipl. Inf. Thomas Ilsche
Computer Scientist
Highly Adaptive Energy-Efficient Computing
CRC 912 HAEC: http://tu-dresden.de/sfb912
Technische Universit├Ąt Dresden
Center for Information Services and High Performance Computing (ZIH)
01062 Dresden, Germany

Phone: +49 351 463-42168
Fax: +49 351 463-3773
E-Mail: thomas.ilsche@...dresden.de


Download attachment "smime.p7s" of type "application/pkcs7-signature" (5015 bytes)

Powered by blists - more mailing lists