-%bcond_with flex_bison_c++
+#
+# Conditional build:
+%bcond_with flex_bison_c++ # use flex++/bison++
+#
Summary: A general, open source, retargetable decompiler of native executable files
-Summary(pl): Ogólny, otwarty dekompilator natywnych plików wykonywalnych
+Summary(pl.UTF-8): Ogólny, otwarty dekompilator natywnych plików wykonywalnych
Name: boomerang
-Version: 0.0.0.20040707
-Release: 0.1
+Version: 0.0.0.20040708
+Release: 0.2
License: GPL
Group: Development/Languages
Source0: %{name}.tar.gz
-# Source0-md5: 97d2b1825b3e2d5bcd85df48eb15a45e
+# Source0-md5: a9f15806eb670686869f67a06e8a6fbb
+Patch0: %{name}-path.patch
+Patch1: %{name}-types.patch
URL: http://boomerang.sourceforge.net/
+BuildRequires: automake
%if %{with flex_bison_c++}
BuildRequires: bison++
BuildRequires: flex
BuildRequires: expat-devel
BuildRequires: gc-devel
BuildRequires: libstdc++-devel
+BuildRequires: sed >= 4.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define no_install_post_chrpath 1
+
%description
An attempt to develop a real decompiler through the open source
community. A decompiler takes as input an executable file, and
names and comments, though these are obviously very important) require
expert intervention.
-%description -l pl
-Próba stworzenia prawdziwego dekompilatora przez spo³eczno¶æ otwartego
-oprogramowania. Dekompilator przyjmuje na wej¶ciu plik wykonywalny i
-próbuje stworzyæ kompilowalny, a nawet zarz±dzalny, plik ¼ród³owy w
-jêzyku wy¿szego poziomu wykonuj±cy to samo zadanie. Jest to wiêc
-przeciwieñstwo kompilatora, który oczywi¶cie przyjmuje plik ¼ród³owy i
-tworzy wykonywalny. Oczywi¶cie dekompilator nie odtworzy oryginalnego
-pliku ¼ród³owego; raczej nic z tych rzeczy. Nie ma znaczenia, czy plik
-wykonywalny ma symbole czy nie, ani czy zosta³ skompilowany z jakiego¶
-konkretnego jêzyka (jednak jêzyki w rodzaju ML, które s± zwykle
-interpretowane, nie s± brane pod uwagê).
+%description -l pl.UTF-8
+Próba stworzenia prawdziwego dekompilatora przez społeczność otwartego
+oprogramowania. Dekompilator przyjmuje na wejściu plik wykonywalny i
+próbuje stworzyć kompilowalny, a nawet zarządzalny, plik źródłowy w
+języku wyższego poziomu wykonujący to samo zadanie. Jest to więc
+przeciwieństwo kompilatora, który oczywiście przyjmuje plik źródłowy i
+tworzy wykonywalny. Oczywiście dekompilator nie odtworzy oryginalnego
+pliku źródłowego; raczej nic z tych rzeczy. Nie ma znaczenia, czy plik
+wykonywalny ma symbole czy nie, ani czy został skompilowany z jakiegoś
+konkretnego języka (jednak języki w rodzaju ML, które są zwykle
+interpretowane, nie są brane pod uwagę).
-Intencj± jest stworzenie dekompilatora dla wielu architektur (czyli
-takiego, który mo¿e dzia³aæ z ró¿nymi rodzajami wej¶ciowych plików
+Intencją jest stworzenie dekompilatora dla wielu architektur (czyli
+takiego, który może działać z różnymi rodzajami wejściowych plików
wykonywalnych z przyzwoitym efektem, np. x86-windows, sparc-solaris
-itp.). Bêdzie bardzo modularny, wiêc wiele czê¶ci dekompilatora mo¿e
-zostaæ zast±piona eksperymentalnymi modu³ami. Byæ mo¿e stanie siê
-interaktywny, jak IDA Pro, poniewa¿ niektóre rzeczy (nie tylko nazwy
-zmiennych i komentarze, chocia¿ te s± oczywi¶cie bardzo wa¿ne)
-wymagaj± interwencji eksperta.
+itp.). Będzie bardzo modularny, więc wiele części dekompilatora może
+zostać zastąpiona eksperymentalnymi modułami. Być może stanie się
+interaktywny, jak IDA Pro, ponieważ niektóre rzeczy (nie tylko nazwy
+zmiennych i komentarze, chociaż te są oczywiście bardzo ważne)
+wymagają interwencji eksperta.
%prep
%setup -q -n %{name}
+%patch0 -p1
+%patch1 -p1
-%build
-rm -rf */CVS
+find . -type d -name CVS -exec rm -rf "{}" ";" 2> /dev/null || :
+find . -type f -name 'Makefile*' -exec sed -i -e 's#^BOOMDIR=.*#BOOMDIR=%{_libdir}/%{name}#g' "{}" ";"
-ln -s %{_includedir}/cppunit include/cppunit
+%build
+ln -sf %{_includedir}/cppunit include/cppunit
+cp -f /usr/share/automake/config.* .
%configure
%if ! %{with flex_bison_c++}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_libdir},%{_datadir}/%{name},%{_bindir}}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/%{name}/frontend/machine}
install %{name} $RPM_BUILD_ROOT%{_bindir}
-cp -a signatures transformations $RPM_BUILD_ROOT%{_datadir}/%{name}
-cp -a lib $RPM_BUILD_ROOT%{_libdir}/%{name}
+cp -a signatures transformations $RPM_BUILD_ROOT%{_libdir}/%{name}
+cp -a frontend/machine/* $RPM_BUILD_ROOT%{_libdir}/%{name}/frontend/machine
+find $RPM_BUILD_ROOT%{_libdir}/%{name}/frontend/machine -type f ! -name '*.ssl' -exec rm -f "{}" ";"
+cp -a lib $RPM_BUILD_ROOT%{_libdir}/%{name}/lib
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/*
-%{_datadir}/%{name}
%dir %{_libdir}/%{name}
-%attr(755,root,root) %{_libdir}/%{name}/*.so
+%dir %{_libdir}/%{name}/lib
+%attr(755,root,root) %{_libdir}/%{name}/lib/*.so
+%dir %{_libdir}/%{name}/frontend
+%dir %{_libdir}/%{name}/frontend/machine
+%dir %{_libdir}/%{name}/frontend/machine/*
+%{_libdir}/%{name}/frontend/machine/*/*.ssl
+%{_libdir}/%{name}/signatures
+%{_libdir}/%{name}/transformations