[Gelistirici] pkgconfig dosyaları ve update-environment

Gökçen Eraslan gokcen at pardus.org.tr
9 Kas 2008 Paz 15:36:04 EET


Selamlar,

Kitaplıklardan çıkan, .pc dosyaları, o kitaplığı kullanmak isteyen 
uygulama/kitaplıklara, kitaplığı kullanmak için gereken inşa bilgilerini 
sağlıyor. Örneğin, 

gokcen at melmac ~ $ pkg-config sdl --cflags --libs
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL  -lSDL

komutunu verdiğiniz zaman gelen çıktıyı doğrudan gcc'ye vererek, o kitaplığı 
kullanmak için bilmeniz gereken detayların bir kısmından yalıtılmış 
oluyorsunuz.

pkg-config öntanımlı olarak /usr/lib/pkgconfig dizine bakıyor fakat bizim 
prefix verdiğimiz kde4/qt4/qt3 programları, prefix dolayısıyla .pc dosyalarını 
prefix/lib/pkgconfig dizinine koyuyor. Mesela

gokcen at melmac ~ $ ls /usr/kde/4/lib/pkgconfig/
akonadi.pc  Decibel.pc  libkdcraw.pc  libkexiv2.pc  libkipi.pc  libksane.pc

Dolayısıyla, bunları kullanmak isteyen uygulamalar pkg-config ile 
istediklerini alamıyorlar:

gokcen at melmac ~ $ pkg-config akonadi --libs
Package akonaki was not found in the pkg-config search path.
Perhaps you should add the directory containing `akonadi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'akonadi' found

Diyorum ki, qt3/qt4/kde3/kde4'ün içinden /etc/env.d'ye giden dosyaların içine 
PKG_CONFIG_PATH değişkenini değiştiren satırlar ekleyelim böylece onlar da 
kendi dizinlerini eklesinler buraya. Böylece yukarıda çalışmayan komut da 
çalışmış olur.

Bu paketlerdeki değişikliklere ek olarak, müdür'e şöyle ufak bir yama da 
gerekiyor:

Index: update-environment.py
===================================================================
--- update-environment.py       (revision 20617)
+++ update-environment.py       (working copy)
@@ -44,6 +44,7 @@
     "PYTHONPATH",
     "ADA_INCLUDE_PATH",
     "ADA_OBJECTS_PATH",
+    "PKG_CONFIG_PATH"
 )

 def read_env_d(envdir):

Ne dersiniz? Eğer itirazı olan yoksa mudur/kde3/qt3/kde4/qt4 paketlerinde 
gerekli değişiklikleri yapacağım.


-- 
Gökçen Eraslan



Gelistirici mesaj listesiyle ilgili daha fazla bilgi