[Gelistirici] [PATCH] RPATH stripping

ertugrulerata ertugrulerata at gmail.com
5 Eki 2007 Cum 16:43:24 EEST


On Friday 05 October 2007 16:38:12 S.Çağlar Onur wrote:
> 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

kendi şahsıma bu çözüm tektek tüm paketlerle uğraşmaktan güzel göründü
+1



Gelistirici mesaj listesiyle ilgili daha fazla bilgi