[Gelistirici] pisi'de dosya tipinin analizi

Fatih Aşıcı fatih at pardus.org.tr
15 Eyl 2009 Sal 15:08:58 EEST


On Tuesday 15 September 2009 14:44:47 Fatih Aşıcı wrote:
> On Tuesday 15 September 2009 14:19:34 Faik Uygur wrote:
> > > Selam,
> >
> > Selam,
> >
> > > pisi şu anda özel dosyaları ayıklamak ve DSO'ları strip etmek için
> > > install dizinindeki her bir dosya için fork()'layarak file komutunun
> > > çıktısını elde ediyor.
> > >
> > > Aşağıdaki yama bunun yerine file paketinden gelen Python modülünü
> > > kullanmasını sağlıyor.
> >
> > Bunu özellikle kullanmamıştık diye hatırlıyorum ama sebebini
> > hatırlamıyorum. pyfile bazı tipleri hatalı buluyordu olabilir mesela.
> > Sorun yoksa geçebiliriz kullanmaya.
>
> file komutunun yerelden etkilendiğini farkettik. tr_TR.UTF-8 ve C
> yerellerinde farklı sonuçlar veriyor. pisi-cli, setlocale çağırdığı için
> büyük ihtimalle python modülleri her yerelde (ya da en azından Türkçe
> yerelde) farklı sonuç verecek.
>
> Bu arada pisi neden setlocale çağırıyor?

Şöyle bir durum var mesela:

In [16]: locale.setlocale(locale.LC_ALL, "C")
Out[16]: 'C'

In [17]: m.file("test.avi")
Out[17]: 'RIFF (little-endian) data, AVI, 640 x 360, 23.98 fps, video: XviD, audio: MPEG-1 Layer 3 (mono, 32000 Hz)'

In [18]: locale.setlocale(locale.LC_ALL, "tr_TR.UTF-8")
Out[18]: 'tr_TR.UTF-8'

In [19]: m.file("test.avi")
Out[19]: 'RIFF (little-endian) data, AVI, 640 x 360, 23.98 fps, video:, audio: MPEG-1 Layer 3 (mono, 32000 Hz)'

Pisi çalıştıktan hemen sonra kullanıcı yereline geçtiği için son satırdaki
gibi eksik bir bilgi alıyor. Olası sorunlara karşı C yerelinde çalışsa iyi 
olur bence. Yerelden haberdar karşılaştırma yapılmak istenirse geçici olarak
kullanıcı yereline geçip sonra tekrar C yereline dönülebilir.




Gelistirici mesaj listesiyle ilgili daha fazla bilgi