[Gelistirici] [PATCH] RPATH stripping

S.Çağlar Onur caglar at pardus.org.tr
5 Eki 2007 Cum 16:38:12 EEST


Selamlar;

Sadece benim sistemimde içinde RPATH barındıran

caglar at zangetsu ~ $ cat rpath | wc -l
474

executable dosya var, bunlara shared objeler dahil değil. Farm ise şimdi 
analiz için tüm listeyi çıkartmak ile meşgul.

RPATH (bilmeyenler için özetle RPATH build işlemi sırasında kütüphanelerin 
yollarının binary dosya içine hardcode edilmesi işi, bu aynı zamanda bir 
güvenlik problemi de) build işlemi sırasında --disable-rpath gibi bir argüman 
ile disable edilebileceği gibi bazı paketler özel yamada istiyor olabilir 
durumdalar.

Bu kadar paketi yamalamak v.s yapmak yerine strip işinden çok da farklı 
olmayan bu iş için chrpath isimli uygulamayı depoya alıp, PiSi bağımlılığı 
yapıp aşağıdaki yamayı öneriyorum. Fikir/öneri/itiraz?

Index: util.py
===================================================================
--- util.py	(revision 15652)
+++ util.py	(working copy)
@@ -520,6 +520,12 @@
         if ret:
             ctx.ui.warning(_("strip command failed for file '%s'!") % f)
 
+    def run_chrpath(f):
+        p = os.popen("chrpath -d %s" %(flags, f))
+        ret = p.close()
+        if ret:
+            ctx.ui.warning(_("chrpath command failed for file '%s'!") % f)
+
     def save_elf_debug(f, o):
         """copy debug info into file.debug file"""
         p = os.popen("objcopy --only-keep-debug %s %s%s" % (f, o, 
ctx.const.debug_file_suffix))
@@ -542,6 +548,7 @@
             check_dir(os.path.dirname(outpath))
             save_elf_debug(filepath, outpath)
         run_strip(filepath)
+        run_chrpath(filepath)
         return True
 
     elif "SB shared object" in o:
@@ -549,6 +556,7 @@
             check_dir(os.path.dirname(outpath))
             save_elf_debug(filepath, outpath)
         run_strip(filepath, "--strip-unneeded")
+        run_chrpath(filepath)
         # FIXME: warn for TEXTREL
         return True
 


Saygılar
-- 
S.Çağlar Onur <caglar at pardus.org.tr>
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: kullanılamıyor
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20071005/336619d9/attachment-0002.pgp>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi