Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-release-src > by-pkgid > f73f493774fdaf6ac0a875565b4d87b1 > files > 3

mapnik-0.7.1-1mdv2010.1.src.rpm

%define major 0
%define libname %mklibname %{name} %{major}
%define develname %mklibname -d %{name}

Name:      mapnik
Version:   0.7.1
Release:   %mkrel 1
Summary:   Free Toolkit for developing mapping applications
Group:     Communications
License:   LGPLv2+
URL:       http://mapnik.org/
Source0:   http://download.berlios.de/mapnik/%{name}-%{version}.tar.bz2
Source1:   mapnik-data.license
Source2:   no_date_footer.html
Source3:   viewer.desktop
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires: postgresql-devel pkgconfig
BuildRequires: gdal-devel proj-devel agg-devel
BuildRequires: scons doxygen desktop-file-utils
BuildRequires: libltdl-devel qt4-devel > 4.3
BuildRequires: libxml2-devel boost-devel libicu-devel
BuildRequires: libtiff-devel libjpeg-devel libpng-devel
BuildRequires: cairomm-devel pycairo-devel
BuildRequires: freetype2-devel
BuildRequires: python-devel
Requires:  fonts-ttf-dejavu
Requires: %{libname} = %{version}-%{release}

%description
Mapnik is a Free Toolkit for developing mapping applications.
It's written in C++ and there are Python bindings to
facilitate fast-paced agile development. It can comfortably
be used for both desktop and web development, which was something
I wanted from the beginning.

Mapnik is about making beautiful maps. It uses the AGG library
and offers world class anti-aliasing rendering with subpixel
accuracy for geographic data. It is written from scratch in
modern C++ and doesn't suffer from design decisions made a decade
ago. When it comes to handling common software tasks such as memory
management, filesystem access, regular expressions, parsing and so
on, Mapnik doesn't re-invent the wheel, but utilises best of breed
industry standard libraries from boost.org 

%package -n %{libname}
Summary: Mapnik is a Free toolkit for developing mapping applications
Group: System/Libraries

%description -n %{libname}
Mapnik is a Free Toolkit for developing mapping applications.
It's written in C++ and there are Python bindings to
facilitate fast-paced agile development. It can comfortably
be used for both desktop and web development, which was something
I wanted from the beginning.

Mapnik is about making beautiful maps. It uses the AGG library
and offers world class anti-aliasing rendering with subpixel
accuracy for geographic data. It is written from scratch in
modern C++ and doesn't suffer from design decisions made a decade
ago. When it comes to handling common software tasks such as memory
management, filesystem access, regular expressions, parsing and so
on, Mapnik doesn't re-invent the wheel, but utilises best of breed
industry standard libraries from boost.org


%package -n %{develname}
Summary: Mapnik is a Free toolkit for developing mapping applications
Group: Development/C++
Requires: %{libname} = %{version}-%{release}
Provides: %{name}-devel = %{version}-%{release}
Obsoletes: %{name}-devel

%description -n %{develname}
Mapnik is a Free Toolkit for developing mapping applications.
It's written in C++ and there are Python bindings to
facilitate fast-paced agile development. It can comfortably
be used for both desktop and web development, which was something
I wanted from the beginning.

Mapnik is about making beautiful maps. It uses the AGG library
and offers world class anti-aliasing rendering with subpixel
accuracy for geographic data. It is written from scratch in
modern C++ and doesn't suffer from design decisions made a decade
ago. When it comes to handling common software tasks such as memory
management, filesystem access, regular expressions, parsing and so
on, Mapnik doesn't re-invent the wheel, but utilises best of breed
industry standard libraries from boost.org

%package python
Summary:  Python bindings for the Mapnik spatial visualization library
License:  GPLv2+
Group:    Development/Python
Requires: %{name} = %{version}-%{release}
Requires: python-imaging python-lxml

%description python
Language bindings to enable the Mapnik library to be used from python

%package utils
License:  GPLv2+
Summary:  Utilities distributed with the Mapnik spatial visualization library
Group:    Communications
Requires: %{name} = %{version}-%{release}

%description utils
Miscellaneous utilities distributed with the Mapnik spatial visualization
library

#%package demo
#Summary:  Demo utility and some sample data distributed with mapnik
#License:  GPLv2+ GeoGratis
#Group:    Development/Other
#Requires: %{develname} = %{version}-%{release}
#Requires: %{name}-python = %{version}-%{release}
#Requires: freetype2-devel

#%description demo
#Demo application and sample vector datas distributed with the Mapnik
#spatial visualization library

%prep
%setup -q -n %{name}-%{version}

# clean SVN
find . -type d -name .svn -exec rm -rf '{}' +

# get rid of local agg, tinyxml and fonts
rm -rf agg tinyxml fonts

set +x
for f in `find . -type f` ; do
   if file $f | grep -q ISO-8859 ; then
      set -x
      iconv -f ISO-8859-1 -t UTF-8 $f > ${f}.tmp && \
         mv -f ${f}.tmp $f
      set +x
   fi
   if file $f | grep -q CRLF ; then
      set -x
      sed -i -e 's|\r||g' $f
      set +x
   fi
done
set -x

# fix spurious exec flag
chmod -x demo/viewer/images/*.png
chmod -x demo/data/test/regenerate.sh
find . -type d -perm /g+s -exec chmod -s '{}' \;

# fix wrong path in some demo files
sed -i -e 's|/lib/mapnik/input/|/%{name}/input/|g' demo/c++/rundemo.cpp

sed -i -e 's|/opt/%{name}/include|../../include|g' demo/viewer/viewer.pro
sed -i -e 's|/opt/boost/include/boost-1_39|%{_includedir}/boost|g' demo/viewer/viewer.pro
sed -i -e 's|/usr/X11/include/freetype2|%{_includedir}/freetype2|g' demo/viewer/viewer.pro
sed -i -e 's|-L/opt/mapnik/lib|-L../../src/|g' demo/viewer/viewer.pro
sed -i -e 's|-L/opt/boost/lib|-L/usr/%{_lib}|g' demo/viewer/viewer.pro
sed -i -e 's|/usr/local|/usr|g' demo/viewer/viewer.pro

%build

# linkage errors
sed -i -e "s|libraries \= \[|libraries \= \[\'mapnik\',|g" plugins/input/gdal/SConscript
sed -i -e "s|libraries \= \[|libraries \= \[\'mapnik\',|g" plugins/input/postgis/SConscript
sed -i -e "s|libraries \= \[|libraries \= \[\'mapnik\',|g" plugins/input/shape/SConscript
sed -i -e "s|libraries \= \[|libraries \= \[\'mapnik\'|g" plugins/input/raster/SConscript

# fix build flags
sed -i -e "s|common_cxx_flags = .-D\%s|common_cxx_flags = \'-D\%s $RPM_OPT_FLAGS |g" SConstruct


# WARNING smp may break build
# %{?_smp_mflags}
scons         PREFIX=%{_prefix} \
              THREADING=multi \
              XMLPARSER=libxml2 \
              GDAL_INCLUDES=%{_includedir}/gdal \
              INTERNAL_LIBAGG=False \
	      SYSTEM_FONTS=True

# build mapnik viewer app
#pushd demo/viewer
#qmake viewer.pro
# WARNING smp may break build
# %{?_smp_mflags}
#make
#popd

# build doxygen docs
# use multilib aware footer
#sed -i -e 's|HTML_FOOTER|HTML_FOOTER=no_date_footer.html\n\#|g' docs/doxygen/Doxyfile
#install -p -m 644 %{SOURCE2} docs/doxygen/
#pushd docs/doxygen
#doxygen
#popd

%install

rm -rf %{buildroot}

scons install DESTDIR=%{buildroot} \
              PREFIX=%{_prefix} \
              THREADING=multi \
              XMLPARSER=libxml2 \
              GDAL_INCLUDES=%{_includedir}/gdal \
              INTERNAL_LIBAGG=False \
	      SYSTEM_FONTS=True

# get rid of fonts use external instead
rm -rf %{buildroot}%{_libdir}/%{name}/fonts

# install more utils
mkdir -p %{buildroot}%{_bindir}
#install -p -m 755 demo/viewer/viewer %{buildroot}%{_bindir}/
install -p -m 755 utils/stats/mapdef_stats.py %{buildroot}%{_bindir}/
#install -p -m 644 %{SOURCE1} demo/data/

# install pkgconfig file
cat > %{name}.pc <<EOF
prefix=%{_prefix}
exec_prefix=%{_prefix}
includedir=%{_includedir}

Name: %{name}
Description: Free Toolkit for developing mapping applications
Version: %{version}
Libs: -lmapnik
Cflags: -I${includedir}/%{name} -I${includedir}/agg
EOF

mkdir -p %{buildroot}%{_datadir}/pkgconfig/
install -p -m 644 %{name}.pc %{buildroot}%{_datadir}/pkgconfig/

# install desktop file
#desktop-file-install --vendor="mandriva" \
 #       --dir=%{buildroot}%{_datadir}/applications %{SOURCE3}

%check

# export test enviroment
export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python_sitearch}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH%{buildroot}%{_libdir}

pushd tests/
./run_tests.py || true
popd

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc AUTHORS COPYING README
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/input
%{_libdir}/%{name}/input/*.input

%files -n %{libname}
%defattr(-,root,root,-)
%{_libdir}/lib%{name}.so.%{major}*

%files -n %{develname}
%defattr(-,root,root,-)
##%doc docs/doxygen/html
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/*.hpp
%{_libdir}/lib%{name}.so
%{_datadir}/pkgconfig/%{name}.pc

%files python
%defattr(-,root,root,-)
%{python_sitearch}/%{name}
%{_bindir}/mapdef_stats.py

%files utils
%defattr(-,root,root,-)
%{_bindir}/shapeindex
#%{_bindir}/viewer
#%{_datadir}/applications/mandriva-viewer.desktop

#%files demo
#%defattr(-,root,root,-)
#%doc demo/c++
#%doc demo/data
#%doc demo/python demo/test


%changelog
* Mon Apr 26 2010 Emmanuel Andry <eandry@mandriva.org> 0.7.1-1mdv2010.1
+ Revision: 539350
- New version 0.7.1

* Sun Mar 21 2010 Funda Wang <fwang@mandriva.org> 0.7.0-4mdv2010.1
+ Revision: 526121
- rebuild for new icu

* Mon Feb 08 2010 Anssi Hannula <anssi@mandriva.org> 0.7.0-3mdv2010.1
+ Revision: 501882
- rebuild for new boost

* Wed Feb 03 2010 Funda Wang <fwang@mandriva.org> 0.7.0-2mdv2010.1
+ Revision: 500088
- rebuild for new boost

* Wed Jan 20 2010 Funda Wang <fwang@mandriva.org> 0.7.0-1mdv2010.1
+ Revision: 494015
- new version 0.7.0

* Thu Aug 20 2009 Emmanuel Andry <eandry@mandriva.org> 0.6.1-1mdv2010.0
+ Revision: 418585
- disable demo (breaks build)
- fix major
- use system fonts
- fix include path for demo viewer
- New version 0.6.1
- drop patches
- use mandriva library policy

* Thu Mar 12 2009 Emmanuel Andry <eandry@mandriva.org> 0.5.2-0.750.7mdv2009.1
+ Revision: 354290
- rebuild for new boost

* Thu Jan 29 2009 Funda Wang <fwang@mandriva.org> 0.5.2-0.750.6mdv2009.1
+ Revision: 335157
- rebuild

* Sat Jan 24 2009 Funda Wang <fwang@mandriva.org> 0.5.2-0.750.5mdv2009.1
+ Revision: 333279
- rebuild for new python

* Sun Dec 21 2008 Funda Wang <fwang@mandriva.org> 0.5.2-0.750.4mdv2009.1
+ Revision: 316865
- rebuild for new boost

* Fri Nov 07 2008 Olivier Blin <oblin@mandriva.com> 0.5.2-0.750.3mdv2009.1
+ Revision: 300461
- remove hardcoded requires in devel package

* Fri Nov 07 2008 Olivier Blin <oblin@mandriva.com> 0.5.2-0.750.2mdv2009.1
+ Revision: 300397
- fix font requires
- buildrequire python-devel
- fix groups
- fix build with freetype2
- initial Mandriva package (based on Fedora)
- create mapnik