[Gelistirici] Pisi mi ve scons mu sorun?

Onur Küçük onur at pardus.org.tr
12 Oca 2008 Cmt 18:44:44 EET


> > Debian yama dosyası:
> > http://murat.homelinux.org/01_no_home.diff
> 
> Pakete aldım, teşekkürler.

 Elinize sağlık, ben de buna bakıyordum. Murat nokta atış çözümü bulmuş
ama bilgi olması açısından buraya yazıyorum, sonradan scons la başı
ağrıyan olursa ya da olayı merak eden varsa diye.

 Öncelikle sorun ccache güncellemesinden sonra (2007-06-16) ortaya
çıkmış  (2.4 changelog der ki  "fixed handling of HOME environment
variable") bu yüzden daha önce fark edemedik. Murat'ın gösterdiği gibi,
HOME yoksa ccache kasıtlı olarak patlıyor.

 Normalde SCons, daha güzel bir dünya ve "reliable build environment"
sağlamak için bütün environment ı es geçip aradan istediği bir kaç
değeri alıyor (şu anda SHELL ve SPAWN). HOME ayarlanmadığı için de
Murat'ın gösterdiği gibi ccache patlıyor. Bunun çözümü aslında
SConstruct dosyaları içinde environment ayarlamakla da mümkün

try:
	env = Environment()
	env['ENV']['PATH'] = os.environ['PATH']
	env['ENV']['HOME'] = os.environ['HOME']
	env['ENV']['CCACHE_DIR'] = os.environ['CCACHE_DIR']
except:
	print "No CCACHE_DIR is set"


 ya da scons a şu yama yapılabilir

diff -Nur scons-0.97-old/engine/SCons/Action.py
scons-0.97/engine/SCons/Action.py
--- scons-0.97-old/engine/SCons/Action.py	2008-01-12
18:08:34.000000000 +0200 +++ scons-0.97/engine/SCons/Action.py
2008-01-12 18:10:17.000000000 +0200 @@ -444,7 +444,7 @@
         escape = env.get('ESCAPE', lambda x: x)
 
         try:
-            ENV = env['ENV']
+            ENV = os.environ
         except KeyError:
             global default_ENV
             if not default_ENV:


 Scons yamalamanın faydası, diğer ccache ile ilgili environment
değerleri geçirme şansı olacak ve ccache i scons ile düzgün
çalıştırabileceğiz, ama bu hem güvenlik açığı getirebilir hem de
upstream "it's not a bug, it's a feature" diyor. Sadece HOME alması
için de scons yamalanabilir (yine aynı dosyada biraz yukarıda) ama o da
yeteri kadar güvenli gelmedi.

 Bu mu olsun şu mu olsun diye mesaj atacaktım ama scons da açık yapmaya
gerek yok, şu anki düzeltme (ayrıca debian da kullandığı için) bence de
daha iyi. 

-- 
 Onur Küçük                                      Knowledge speaks,   
 <onur.--.-.pardus.org.tr>                       but wisdom listens  




Gelistirici mesaj listesiyle ilgili daha fazla bilgi