[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