Blob Blame History Raw
Name:		insight
Version:	6.8
Release:	7%{?dist}
Summary:	Graphical debugger based on GDB
License:	GPLv3+
Group:		Development/Debuggers
Url:		http://sources.redhat.com/insight/
Source0:	ftp://sourceware.org/pub/insight/releases/insight-%{version}.tar.bz2
Source1:	insight.desktop
Source2:	insight.1
Patch1:		insight-6.8-warnings.patch
Patch2:		insight-6.8-destdir.patch
Patch3:		insight-6.8-derefbug.patch
Patch4:		insight-6.8-gcc43.patch
Patch5:		insight-6.8-ia64bound.patch
Patch6:		insight-6.8-itcl33.patch
Patch7:		insight-6.8-syspackages.patch
Patch8:		insight-6.8-relocate.patch
Patch9:		insight-6.8-readline-system.patch
Patch10:	insight-6.8-tclm4.patch
Patch11:	insight-6.8-lib64.patch
Patch12:	insight-6.8-gcc44.patch
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root
Requires:	iwidgets
BuildRequires:	tcl-devel
BuildRequires:	tk-devel
BuildRequires:	itcl-devel >= 3.3
BuildRequires:	itk-devel >= 3.3
BuildRequires:	iwidgets
BuildRequires:	ncurses-devel
BuildRequires:	readline-devel
BuildRequires:	expat-devel
BuildRequires:	ImageMagick
BuildRequires:	desktop-file-utils
BuildRequires:	automake
BuildRequires:	autoconf

%description
 Insight is a tight graphical user interface to GDB written in Tcl/Tk.
It provides a comprehensive interface that enables users to harness
most of GDB's power. It's also probably the only up-to-date UI for
GDB version 6.x.


#-------------------------------------------------------------------------------
%prep 
#-------------------------------------------------------------------------------

%setup -q
%patch1 -p1 -b .warnings
%patch2 -p1 -b .destdir
%patch3 -p1 -b .derefbug
%patch4 -p1 -b .gcc43
%patch5 -p1 -b .ia64bound
%patch6 -p1 -b .itcl33
%patch7 -p1 -b .syspackages
%patch8 -p1 -b .relocate
%patch9 -p1 -b .readline-system
%patch10 -p1 -b .tclm4
%patch11 -p1 -b .lib64
%patch12 -p1 -b .gcc44


#-------------------------------------------------------------------------------
%build
#-------------------------------------------------------------------------------

rm -rf itcl tcl tk readline

#	Patches "syspackages" and "relocate" requires some autotools rebuilds.

for location in gdb/gdbtk/plugins libgui
do	(
		cd $location
		aclocal
		automake
		autoconf
	)
done

#	Patch "readline-system" requires autoconf

(
	cd gdb
	autoconf
)

#	Get inclusion paths.

. "%{_libdir}/tclConfig.sh"
. "%{_libdir}/tkConfig.sh"

#	Bug in itcl/itk >= 3.3: no way to determine the include path.
#	Hack configure here.

export ac_cv_c_itclh="%{_includedir}"
export ac_cv_c_itkh="%{_includedir}"

#	We do our best here to have host=target, since this enables native mode,
#		thus local unix process debugging. We also try not to
#		cross-compile.
#	The ix86 processor family is the problem here.

%ifarch %{ix86}
%define test1	"%{_host_cpu}" == "i386" || "%{_host_cpu}" == "i486"
%define test2	"%{_host_cpu}" == "i686" || "%{_host_cpu}" == "pentium3"
%define test3	"%{_host_cpu}" == "pentium4" || "%{_host_cpu}" == "athlon"
%if %{test1} || %{test2} || %{test3}
%define test1	"%{_build_cpu}" == "i386" || "%{_build_cpu}" == "i486"
%define test2	"%{_build_cpu}" == "i686" || "%{_build_cpu}" == "pentium3"
%define test3	"%{_build_cpu}" == "pentium4" || "%{_build_cpu}" == "athlon"
%if %{test1} || %{test2} || %{test3}
%define _build	%{_target_platform}
%endif
%define _host	%{_target_platform}
%endif
%endif

%configure	--enable-gdbtk						\
		--enable-sim						\
		--disable-rpath						\
		--with-separate-debug-dir=/usr/lib/debug		\
		--with-system-readline					\
		--with-expat						\
		--with-tclinclude="${TCL_SRC_DIR}"			\
		--with-tkinclude="${TK_SRC_DIR}"			\
%ifarch ia64
		--with-libunwind					\
%else
		--without-libunwind					\
%endif
		%{_target_platform}

make %{?_smp_mflags}


#-------------------------------------------------------------------------------
%install
#-------------------------------------------------------------------------------

rm -rf "${RPM_BUILD_ROOT}"

INSTALL="install -p"

make DESTDIR="${RPM_BUILD_ROOT}" INSTALL="${INSTALL}" install

#	Removes unnecessary stuff.

(
	cd	"${RPM_BUILD_ROOT}"

	rm -f .%{_bindir}/gdb
	rm -f .%{_bindir}/gdbtui
	rm -f .%{_bindir}/gdbserver

	rm -rf .%{_includedir}

	rm -f .%{_libdir}/*.a
	rm -f .%{_libdir}/*.la
	rm -f .%{_libdir}/*.sh

	rm -rf .%{_prefix}/man
	rm -rf .%{_datadir}/man

	rm -rf .%{_datadir}/info
	rm -rf .%{_datadir}/locale
)

#	Regenerate the libgui pkgIndex.tcl file.

echo "pkg_mkIndex \"${RPM_BUILD_ROOT}%{_datadir}/insight/gui\"" | tclsh

#	Install man file.

${INSTALL} -m 755 -d "${RPM_BUILD_ROOT}%{_mandir}/man1"
${INSTALL} -m 644 -p "%{SOURCE2}" "${RPM_BUILD_ROOT}%{_mandir}/man1/"

#	Create the menu entry.

${INSTALL} -m 755 -d "${RPM_BUILD_ROOT}%{_datadir}/applications"
desktop-file-install							\
	--vendor	"fedora"					\
	--dir		"${RPM_BUILD_ROOT}%{_datadir}/applications"	\
	"%{SOURCE1}"

#	Install icon.

${INSTALL} -m 755 -d "${RPM_BUILD_ROOT}%{_datadir}/pixmaps"
convert "gdb/gdbtk/library/images/gdbtk_icon.gif"			\
	"${RPM_BUILD_ROOT}%{_datadir}/pixmaps/%{name}.png"


#-------------------------------------------------------------------------------
%clean 
#-------------------------------------------------------------------------------

rm -rf "${RPM_BUILD_ROOT}"


#-------------------------------------------------------------------------------
%files
#-------------------------------------------------------------------------------

%defattr(-, root, root, -)
%doc gdb/NEWS gdb/gdbtk/README gdb/gdbtk/plugins/HOW-TO include/COPYING3
%{_bindir}/*
%{_datadir}/insight
%{_datadir}/applications/*
%{_datadir}/pixmaps/*
%{_mandir}/man*/*


#-------------------------------------------------------------------------------
%changelog
#-------------------------------------------------------------------------------

* Mon Mar  2 2009 Patrick Monnerat <pm@datasphere.ch> 6.8-7
- Removed libXft-devel build requirement.
- .desktop file categories fixed.

* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.8-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Wed Feb 18 2009 Patrick Monnerat <pm@datasphere.ch> 6.8-5
- Patch "gcc44" to make it compilable with gcc 4.4.
- Build converts image format using ImageMagick instead of gif2png.
- Add build requirement of libXft-devel as a temporary workaround for missing
  dependence of tk-devel on it.

* Mon Oct 13 2008 Patrick Monnerat <pm@datasphere.ch> 6.8-4
- X-Fedora application category removed.
- Force option -p of install.

* Thu Oct  9 2008 Patrick Monnerat <pm@datasphere.ch> 6.8-3
- Patch "lib64" to enable tcl/tk/itcl/itk searches also in */lib64.

* Wed Oct  8 2008 Patrick Monnerat <pm@datasphere.ch> 6.8-2
- Patch "tclm4" to define tcl/tk autoconf macros in gdbtk/plugins directory.
- Use system readline.
- Force expat use.

* Thu Aug 14 2008 Patrick Monnerat <pm@datasphere.ch> 6.8-1
- Initial package.
- Patch "warnings" to suppress compilation warnings, since these abort rpmbuild.
- Patch "destdir" to properly install files when DESTDIR is defined.
- Patch "derefbug" to fix an address/value confusion bug.
- Patch "gcc43" to satisfy extra checks of gcc compiler version 4.3.
- Patch "ia64bound" to fix an array index out-of-bound bug in IA64
  specific code.
- Patch "itcl33" to migrate all code to itcl/itk version 3.3.
- Patch "syspackages" to use system-installed packages tck, tk, itcl, itk and
  iwidgets.
- Patch "relocate" to move all datadir/subdir stuff into datadir/insight (incl.
  libgui, that ought to be an external package). Non-binary libdir/* is also
  moved.