Bug 13613

Summary: jython collisions in python syntax checking
Product: Sisyphus Reporter: viy <viy>
Component: rpm-build-python3Assignee: Ivan Zakharyaschev <imz>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P2 CC: darktemplar, george, glebfm, imz, kotopesutility, ldv, max.gordeef, rider, slev, vitty
Version: unstable   
Hardware: all   
OS: Linux   

Description viy 2007-12-06 21:12:33 MSK
добавить бы рычаг, что если в скрипте встречается
'import java'
то это jython скрипт, и пропускать его provides, requires и syntax chacking.



Actual Results:  
python.req: ERROR:
/usr/src/tmp/eclipse-pydev-buildroot/usr/share/eclipse/plugins/org.python.pydev.jython_1.3.9/Lib/javaos.py:
+invalid syntax (line 221)
Traceback (most recent call last):
  File "/usr/lib/rpm/python.req.py", line 195, in ?
    lis = parser.suite('\n'.join(lines)+'\n').tolist(line_info=1)
  File "<string>", line 221
    p = java.lang.Runtime.getRuntime().exec( shellCmd, env )
                                          ^
SyntaxError: invalid syntax
error: /bin/sh failed
error: Failed to find Requires


RPM build errors:
    /bin/sh failed
    Failed to find Requires
Command exited with non-zero status 1
75.21user 7.30system 2:15.18elapsed 61%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (2410major+1103995minor)pagefaults 0swaps
hsh-rebuild: rebuild of `eclipse-pydev-1.3.9-alt1_1jpp5.0.src.rpm' failed.
Comment 1 viy 2007-12-06 21:12:48 MSK
syntax checking
Comment 2 viy 2007-12-06 21:13:17 MSK
assigned to author
Comment 3 at@altlinux.org 2008-03-31 00:56:33 MSD
Как определить, что в скрипте втречается 'import java'?  Только грепом не
предлагайте.  Нужно ведь сначала распарсить, а потом уже можно анализировать,
что там импортируется.  А здесь действительно синтаксическая ошибка -- похоже,
что exec это keyword и его нельзя использовать в качестве названия метода. 
Впрочем, нужно проверить, так ли это для питона 2.5.
Comment 4 Ivan A. Melnikov 2008-12-18 14:59:32 MSK
(In reply to comment #3)
> Впрочем, нужно проверить, так ли это для питона 2.5.
> 

В питоне 2.5 использовать exec как метод можно, и даже рекомендуется ввиду грядущего 3.0.

Проверено на python-2.5.2-alt5.
Comment 5 Anton Farygin 2021-11-27 12:31:55 MSK
Если эта ошибка ещё существует, то её чинить надо уже для python3.