-Summary: An attempt at a general, open source, retargetable decompiler of native executable files
+#
+# Conditional build:
+%bcond_with flex_bison_c++ # use flex++/bison++
+#
+Summary: A general, open source, retargetable decompiler of native executable files
+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: flexx++
-BuildRequires: cppunit
+BuildRequires: flex
+%endif
+BuildRequires: cppunit-devel
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.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
+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.
+
%prep
%setup -q -n %{name}
+%patch0 -p1
+%patch1 -p1
+
+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' "{}" ";"
%build
+ln -sf %{_includedir}/cppunit include/cppunit
+cp -f /usr/share/automake/config.* .
%configure
+%if ! %{with flex_bison_c++}
+%{__make} remote
+%endif
+
%{__make} \
- C="%{__cc}" \
- CC="%{__cxx}"
+ C="%{__cc} %{rpmcflags} -I%{_includedir}/gc" \
+ CC="%{__cxx} %{rpmcflags} -I%{_includedir}/gc"
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_libdir}/emacs/site-lisp
-
-%{__make} install \
- DESTDIR="$RPM_BUILD_ROOT"
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/%{name}/frontend/machine}
+install %{name} $RPM_BUILD_ROOT%{_bindir}
+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}/*
+%dir %{_libdir}/%{name}
+%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