Re: Question about SCons support of python 3 .6 and 3.7

Sergey Torokhov via Scons-users <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <[email protected]>
Mats and Bill, thank you for help.

I currently solved test problems with Docbook, Clang and Java.

Docbook: 
There is entire "/src" directory previously was removed
from pre-build scons package within build sandbox env.
Now removing of files is more careful. It's spesific for gentoo
as source-based dist and it's build env.

Clang: 
The gentoo installation paths of clang are "   /usr/lib/llvm/*/bin".
So the problem is solved by creation of symlinks for clang and clang++
in /usr/bin or by passing additional paths to SCons env.

Java:
The problem of searching of apropreate include directory
was solved by patching posix.py script to add gentoo
java-jdk installation paths of packages "oracle-jdk-bin",
"openjdk-bin" and "openjdk":

diff -Nur old/scons-3.0.5/src/engine/SCons/Tool/JavaCommon.py new/scons-3.0.5/src/engine/SCons/Tool/JavaCommon.py
--- old/src/engine/SCons/Tool/JavaCommon.py	2019-03-27 02:16:32.000000000 +0300
+++ new/src/engine/SCons/Tool/JavaCommon.py	2019-06-04 10:44:01.000000000 +0300
@@ -403,7 +403,10 @@
 java_macos_version_include_dir = '/System/Library/Frameworks/JavaVM.framework/Versions/%s*/Headers/'
 
 java_linux_include_dirs = ['/usr/lib/jvm/default-java/include',
-                        '/usr/lib/jvm/java-*/include']
+                        '/usr/lib/jvm/java-*/include',
+                        '/opt/oracle-jdk-bin-*/include',
+                        '/opt/openjdk-bin-*/include',
+                        '/usr/lib/openjdk-*/include']
 # Need to match path like below (from Centos 7)
 # /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/include/
 java_linux_version_include_dirs = ['/usr/lib/jvm/java-*-sun-%s*/include',

I tested it only for package "oracle-jdk-bin-8.202".
The early failed Java test now is passed.

Суббота, 18 мая 2019, 16:24 +03:00 от Mats Wichmann <[email protected]>:
>On 5/18/19 3:54 AM, Sergey Torokhov wrote:
>> Mats, great thanks for viewing log files.
>> 
>> I I re-ran the scons-3.0.5 tests phase with more detailed output (there
>> is was "-s") flag in used build script.
>> The log only for FAILED tests for python3.6 and 3.7 for scons-3.0.5 : 
>> 
>>  https://cloud.mail.ru/public/4icA/C4kKrmAbd  
>> 
>> The fails are actually seems distributive specific because package
>> manager build and test processes
>> are in sandbox environment:
>> 
>> 1. Some clang tests failed due to "clang" command not found.
>> The test that success (e.g. "test/Clang/clang_default_environment.py")
>> seems not try run "clang" command. I think it's due to sandbox environment.
>A number of test areas follow this model - test what you can without
>using the actual external tool (usually using a dummy instead so that
>the initialization code "sees" it): make sure the tool initialization is
>called, and properly sets up construction variables, etc. which is all
>just scons behavior.  Then there are usually some tests that use the
>actual tool (this is the case for lex, yacc, m4 and so on, not just clang).
>
>I think you're falling into the hole that the test harness is more
>optimistic about searching for tools than scons itself, so yes, this is
>problably due to the setup in your sandbox.  Picking just one of the tests:
>
>137/1155 (11.86%) /usr/bin/python3.6 test/Clang/clang_shared_library.py
>FAILED test of
>/var/tmp/portage/dev-util/scons-3.0.5/work/scons-3.0.5/src/script/scons
>        at line 608 of
>/var/tmp/portage/dev-util/scons-3.0.5/work/scons-3.0.5/testing/framework/TestCommon.py
>(_complete)
>        from line 711 of
>/var/tmp/portage/dev-util/scons-3.0.5/work/scons-3.0.5/testing/framework/TestCommon.py
>(run)
>        from line 392 of
>/var/tmp/portage/dev-util/scons-3.0.5/work/scons-3.0.5/testing/framework/TestSCons.py
>(run)
>        from line 51 of test/Clang/clang_default_environment.py
>/var/tmp/portage/dev-util/scons-3.0.5/work/scons-3.0.5/src/script/scons
>returned 2
>STDOUT
>=========================================================================
>scons: Reading SConscript files ...
>scons: done reading SConscript files.
>scons: Building targets ...
>clang -o foo.o -c foo.c
>scons: building terminated because of errors.
>
>STDERR
>=========================================================================
>sh: clang: command not found
>scons: *** [foo.o] Error 127
>
>But, in the test code:
>
>if not test.where_is('clang'):
>    test.skip_test("Could not find 'clang', skipping test.\n")
>
>
>So the test harness's "where_is" method must have found clang but then
>later when the generated SConstruct is run, it isn't in the path used by
>scons to find commands.
>
>DefaultEnvironment(tools=[])
>env = Environment(tools=['clang', 'link'])
>env.SharedLibrary('foo', 'foo.c')
>
>
>
>> 2. Docbook tests failed because of failed to load external
>> "xmldepend.xsl" for parsing from 
>> /var/tmp/portage/dev-util/scons-3.0.5/work/scons-3.0.5/src/engine/SCons/Tool/docbook/utils/
>> as this directory with files doesn't exist. For some reasons some files
>> was removed from
>> build directory now by build script.
>
>Have to wait for Bill (or one of the other old-timers) to comment on
>this, but I think if you're running the tests against an _installed_
>copy of scons, a number of files from the development tree don't get
>installed - the docbook tree is not.  Are you constructing the scons
>package, installing in in the sandbox, and testing against that?  It
>looks like the docbooks tests might not be entirely applicable in that case.
>
>
>> 3. Java (I use java-jdk-8-202) test failed because couldn't find "jni.h"
>> - I think it just doesn't see appropriate include directory within
>> sandbox env too.
>
>> 
>> Thank you again for explaining about status of SCons and tips.

_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.