Blob Blame History Raw
%{!?octave_api:%global octave_api %(octave-config -p API_VERSION || echo 0)}
Name: mathgl
Version: 1.10.2.1
Release: 1%{?dist}.1
Summary: Cross-platform library for making high-quality scientific graphics
Summary(ru): MathGL - это библиотека для осуществления высококачественной визуализации данных
License: GPLv2+
Group: Development/Libraries
Url: http://mathgl.sourceforge.net
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tgz

#Uncomment mathgl dif listing (fix warning) also from pts
Patch0: %{name}-info.patch
#Remove empty libmgl-wx from compilation
Patch1: %{name}-no-mglwx.patch
#Fix DSO linking in mglview util  & examples (linker flags) (2 and 3 reseectively)
Patch2: %{name}-mglview-ldflags.patch
Patch3: %{name}-examples-ldflags.patch
#Remove missing file from install.
Patch4: %{name}-novfm-fonts.patch

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

# mandatory packages
BuildRequires: gsl-devel libpng-devel libtool-ltdl-devel libtool 
BuildRequires: swig 

# optional packages
BuildRequires: freeglut-devel hdf5-devel libjpeg-devel libtiff-devel fltk-devel qt4-devel
BuildRequires: wxGTK-devel giflib-devel octave-devel

#For autoreconf (required for patches, libtool)
BuildRequires:	autoconf
BuildRequires:	automake
BuildRequires:	libtool

Requires(post): info
Requires(preun): info

Requires: octave(api) = %{octave_api}

%description
Mathgl is a cross-platform library for making high-quality scientific
graphics. It provides fast data plotting and handling of large data
arrays, as well as  window and console modes and for easy embedding
into other programs. Mathgl integrates into fltk, qt and
opengl applications

%package devel
Summary: Libraries and header files for %{name} library
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}

%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.

%description devel -l ru
Пакет %{name}-devel содержит библиотеки и файлы заголовков необходимые 
для разработки приложений с использованием %{name}.

%package doc
Group:		Documentation
Summary:	HTML documentation and tutorial for the %{name} applications

BuildArch:	noarch
BuildRequires:	texi2html texinfo-tex	


%description doc
This package contains the documentation in the HTML format of the %{name}
package.

%prep
%setup -q


#convert EOL encodings, maintaining timestames
for file in AUTHORS ChangeLog.txt README COPYRIGHT; do
	sed 's/\r//' $file > $file.new && \
	touch -r $file $file.new && \
	mv $file.new $file
done

%patch0
%patch1
%patch2
%patch3
%patch4

autoreconf


%build
#configure looks for * not *-qt4
QMAKE=/usr/bin/qmake-qt4
LUPDATE=/usr/bin/lupdate-qt4
LRELEASE=/usr/bin/lrelease-qt4

%configure	--disable-static \
		--enable-shared \
		--enable-all --enable-octave --disable-rpath

#Force strip rpath
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/widgets/.libs/:`pwd`/mgl/.libs

make %{?_smp_mflags} 

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"

#Trash the .la files that get generated anyway (faulty configure? Doesn't appear up without --disable-ltdtl-install)
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la


#Fix up octave .oct file install
mkdir -p temp-octave

pushd .
cd temp-octave
#Decompress tarballed "oct" file and remove tarball
tar -zxf $RPM_BUILD_ROOT/%{_datadir}/%{name}/octave/%{name}.tar.gz
rm $RPM_BUILD_ROOT/%{_datadir}/%{name}/octave/%{name}.tar.gz

#Copy the .oct file and supporting files to octave packages dir
mkdir -p $RPM_BUILD_ROOT/%{_prefix}/libexec/octave/packages/%{name}-1.10.1/
#Remove empty INDEX file
rm %{name}/INDEX

#Fix PKG_ADD 
echo "pkg load mathgl" > %{name}/PKG_ADD
echo "mathgl;" >> %{name}/PKG_ADD

#fix wrong version number in description
sed -i 's/1.9/1.10.1/'  %{name}/DESCRIPTION 

#We cannot use version macro with octave package search,
# as pkg.m assumes a x.y.z format for packages. Failing
# to do this renders the plugin inoperable
cp -pR %{name}/inst/* $RPM_BUILD_ROOT/%{_prefix}/libexec/octave/packages/%{name}-1.10.1/

#packinfo dir is required, or octave will not find the dir in recursive search
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/octave/packages/%{name}-1.10.1/packinfo
cp -p %{name}/[A-Z]* $RPM_BUILD_ROOT/%{_datadir}/octave/packages/%{name}-1.10.1/packinfo

popd



pushd .
#Lets build a "docs" dir to maintain the dir relationships needed for html files
mkdir -p  texinfo/docs
cd texinfo/docs/
cp -pr ../mathgl_en.html .
cp -pr ../png_static .
cp -pr ../png/ .

#remove zero length faux PNG file
rm -f png/all.png

popd

#remove installed docs, which we are installing via doc macro
rm -rf $RPM_BUILD_ROOT/%{_docdir}/%{name}

#remove misplaced info "dir" file
rm -f $RPM_BUILD_ROOT/%{_infodir}/dir

pushd $RPM_BUILD_ROOT/%{_infodir}

#move to _en info files
for i in mathgl_en.info*;
do
	mv $i `echo $i | sed s/mathgl_en/mathgl/`
done

popd

%post 
/sbin/ldconfig
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :
octave -q -H --no-site-file --eval "pkg('rebuild');"

%preun
if [ $1 = 0 ] ; then
	/sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
fi

%postun
/sbin/ldconfig
octave -q -H --no-site-file --eval "pkg('rebuild');"

%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog.txt README COPYING COPYRIGHT NEWS TODO
%{_libdir}/*.so.*
%{_bindir}/mgl*
%{_datadir}/%{name}/
%{_prefix}/libexec/octave/packages/%{name}-1.10.1/
%{_datadir}/octave/packages/%{name}-1.10.1/
%{_infodir}/%{name}.*.gz
%{_infodir}/%{name}_ru.*.gz


%files devel
%defattr(-,root,root,-)
%{_includedir}/mgl/
%{_libdir}/*.so

%files doc
%defattr(-,root,root,-)
%doc texinfo/docs/*

%changelog
* Wed Apr 14 2010 <mycae(a!t)yahoo.com> - 1.10.2.1-1.1
- tag bump

* Wed Apr 14 2010 <mycae(a!t)yahoo.com> - 1.10.2.1-1
- Update to 1.10.2.1
- Fix linker error due to DSO change (Bug #564982)

* Sat Jan 02 2010 <mycae(a!t)yahoo.com> - 1.10-2
- Fix octave interface to load on startup
- Fix texinfo insatll

* Sat Jan 02 2010 <mycae(a!t)yahoo.com> - 1.10-1
- Update to 1.10

* Wed Nov 25 2009 Kevin Kofler <Kevin@tigcc.ticalc.org> - 1.9-8
- Rebuild for Qt 4.6.0 RC1 in F13 (was built against Beta 1 with unstable ABI)

* Sun Oct 25 2009 Milos Jakubicek <xjakub@fi.muni.cz> - 1.9-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Mon Sep 14 2009 <mycae(a!t)yahoo.com> 1.9-6
- Add COPYING to doc

* Sat Sep 12 2009 <mycae(a!t)yahoo.com> 1.9-5
- Removed the word "static" from devel description, as doesn't have static
- Fonts now owned at datadir/name level
- Added COPYRIGHT NEWS and TODO

* Sat Aug 15 2009 <mycae(a!t)yahoo.com> 1.9-4
- Fix octave installation method
- Remove wx lib, which doesn't have meaningful code.

* Sun Aug 02 2009  <mycae(a!t)yahoo.com> 1.9-3
- Fix texinfo install (mv to main & add pre/post)
- Remove chrpath, as we now autoreconf
- Add octave pkg rebuild commands

* Tue Jul 21 2009  <mycae(a!t)yahoo.com> 1.9-2 
- Fix rpath for build on x86_64. 
- remove unrecognized configure options: --enable-tiff, --disable-ltdl-install
- Switch to --enable-all --enable-octave
- Add hdf5 patch
- Add doc subpackage

* Thu Jul 09 2009 <mycae(a!t)yahoo.com> 1.9-1
- Update to 1.9
- Drop explicit Requires
- Perserve timestamps on EOL conversion
- Added patch to disable unused gsl cblas link

* Fri May 02 2009 <mycae(a!t)yahoo.com> 1.8.1-1
- Update to 1.8.1

* Wed Jan 28 2009 <mycae(a!t)yahoo.com> 1.8-3
- Ensure timestamps are preserved during make install
- Modify defattr
- Remove UDAV from package summary

* Mon Dec 29 2008 <mycae(a!t)yahoo.com> 1.8-2
- Remove redundant and erroneous licence field in devel section
- Fix files from mgl/*h to mgl/
- Removed Requires, per bugzilla recommendation.
- Disabled static library generation
- Removed libltdl from build 
- Added libtool-ltdl as BuildRequires

* Mon Dec 29 2008 <mycae(a!t)yahoo.com> 1.8-1
- Updated to version 1.8
- Added QT env. vars for fedora
- Cleaned up description
- Change licence field from GPL to GPLv2

* Wed Jun 4 2008 Nik <niktr@mail.ru> 
- disabled hdf5 support according to developer request

* Tue Jun 3 2008 Nik <niktr@mail.ru> 
- updated to version 1.7.1

* Sun Jun 2 2008 Nik <niktr@mail.ru> 
- updated to version 1.7

* Sat Apr 5 2008 Nik <niktr@mail.ru> 
- updated to version 1.6.2

* Thu Mar 13 2008 Nik <niktr@mail.ru>
- updated to version 1.6
- added fltk(-devel) to requres list

* Tue Mar 11 2008 Nik <niktr@mail.ru>
- tiff bug fixed
- enable-all option added

* Sat Mar 1 2008 Nik <niktr@mail.ru>
- spec cleanup
- --enable(jpeg, tiff, hdf5) features added
- enable-tiff leads to make error, submitted to author. Feature disabled.

* Fri Feb 29 2008 Nik <niktr@mail.ru>
- initial build of version 1.5