[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