Re: Regression? GetOption('prefix') does not seem to work in SConscript files since Python 3.10

Robert-André Mauchin <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <[email protected]>
On 6/21/22 17:35, Mats Wichmann wrote:
> On 6/21/22 09:16, Robert-André Mauchin wrote:
> 
>> ```
>> if 'install' in COMMAND_LINE_TARGETS and GetOption('with_gui'):
>>      if not which('python3'):
>>          print('!! Unable to find python3 executable.')
>>          print('!! Will build no GUI.')
>>      else:
>>          py_install = env.Command(
>>              'always.install',
>>              ['setup.py'],
>>              'cd gui && python3 -m install . --prefix {}'.format(
>>                  GetOption('prefix')
>>              )
>>          )
>>          env.Alias('install', py_install)
>> ```
>>
>> to be able to pass an environment variable to the Python subprocess via
>> env.Command.
>>
>> Any idea how to do that?
> 
> a construction environment contains a variable ENV the holds a dict
> known as the execution environment - this is what is passed to the
> subprocess call.  And you've been (un) lucky, SCons is adamant about not
> passing through environment variables, so you do need to set them
> explicity if you need them.  It can be as simple as:
> 
> env['ENV']['RPM_BUILD_ROOT'] = "value"
> 
> 
> Not sure this is the ideal setup, by the way:
> 
> 'cd gui && python3 -m install . --prefix {}'.format(GetOption('prefix')
> 
> 
> In our own test suites, which do a lot of forking of of Python
> subprocesses, the python is typically pasted in (ususally from
> sys.interpreter, which may or may not be appropriate in the rpm case),
> rather than explicitly named something like. The reason is that the
> execution environment also contains the PATH variable, which also isn't
> transferred forward from your original environment.  In other words, if
> you've got Python in a nonstandard place, which an isolated rpm build
> clearly does, you either need to set env['ENV']['PATH'] to something
> appropriate, or supply a path-to-Python instead of just the bare name
> "python3" to have joy with this....
> 
> 
> 

Yes I did a

diff --git a/SConstruct b/SConstruct
index 7e12d413..4a4f1497 100755
--- a/SConstruct
+++ b/SConstruct
@@ -538,7 +538,7 @@ options = dict(
      PREFIX=GetOption('prefix'),
      ENV = dict([ (key, os.environ[key])
                   for key in os.environ
-                 if key in ['PATH', 'TERM', 'HOME', 'PKG_CONFIG_PATH']
+                 if key in ['PATH', 'TERM', 'HOME', 'PKG_CONFIG_PATH', 'RPM_BUILD_ROOT']
                ])
  )



And it worked.
_______________________________________________
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.