remi / rpms / mapserver

Forked from rpms/mapserver 2 months ago
Clone
Blob Blame History Raw
Name:           mapserver
Version:        4.10.3
Release:        2%{?dist}
Summary:        Environment for building spatially-enabled internet applications
Group:          Development/Tools
License:        BSD
URL:            http://mapserver.gis.umn.edu
Source:         http://download.osgeo.org/mapserver/mapserver-%{version}.tar.gz
Patch0:         %{name}-%{version}-ldfix.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires:       httpd 
BuildRequires:  libXpm-devel
BuildRequires:  httpd-devel php-devel
BuildRequires:  postgresql-devel mysql-devel
BuildRequires:  geos-devel proj-devel gdal-devel
BuildRequires:  php-devel freetype-devel gd-devel >= 2.0.16
BuildRequires:  python-devel curl-devel zlib-devel libxml2-devel
BuildRequires:  libjpeg-devel libpng-devel libtiff-devel
BuildRequires:  perl(ExtUtils::MakeMaker)
BuildRequires:  java-gcj-compat-devel swig > 1.3.24


%define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")

%description
Mapserver is an internet mapping program that converts GIS data to
map images in real time. With appropriate interface pages, 
Mapserver can provide an interactive internet map based on 
custom GIS data.

%package -n php-mapserver
Summary:        PHP/Mapscript map making extensions to PHP
Group:          Development/Languages
Requires:       httpd php-gd

%description -n php-mapserver
The PHP/Mapscript extension provides full map customization capabilities within
the PHP scripting language.


%package perl
Summary:        Perl/Mapscript map making extensions to Perl
Group:          Development/Languages
Requires:       %{name} = %{version}-%{release}

%description perl
The Perl/Mapscript extension provides full map customization capabilities
within the Perl programming language.

%package python
Summary:        Python/Mapscript map making extensions to Python
Group:          Development/Languages
Requires:       %{name} = %{version}-%{release}

%description python
The Python/Mapscript extension provides full map customization capabilities
within the Python programming language.

%package java
Summary:        Java/Mapscript map making extensions to Java
Group:          Development/Languages
Requires:       %{name} = %{version}-%{release}
Requires:       java-gcj-compat 

%description java
The Java/Mapscript extension provides full map customization capabilities
within the Java programming language.

%prep
%setup -q
%patch0 -p1
# fix spurious perm bits
chmod -x tests/home.png
chmod -x rfc/ms-rfc-8.txt
chmod -x mapscript/php3/php_mapscript.c
chmod -x mappluginlayer.c
chmod -x mapscript/php3/mapscript_i.c
chmod -x mapscript/php3/examples/test_writeshape.phtml
chmod -x mapscript/python/examples/*.py
chmod -x mapscript/perl/examples/*.pl
chmod -x mapscript/php3/README

%build

# fix gdal lookup
%{__sed} -i.libs -e 's|`\$GDAL_CONFIG --dep-libs`||' configure

%configure \
   --with-gd \
   --with-zlib \
   --with-tiff \
   --with-freetype=%{_bindir}/freetype-config \
   --with-gdal=%{_bindir}/gdal-config \
   --with-ogr=%{_bindir}/gdal-config \
   --with-geos=%{_bindir}/geos-config \
   --with-proj \
   --with-sos \
   --with-wfs \
   --with-wcs \
   --with-wmsclient \
   --with-wfsclient \
   --with-xpm \
   --with-postgis=%{_bindir}/pg_config \
   --with-mygis=%{_bindir}/mysql_config \
   --with-curl-config=%{_bindir}/curl-config \
   --with-xml2-config=%{_bindir}/xml2-config \
   --with-php=`php-config --include-dir` \
   --without-pdf \
   --without-eppl \
   --with-threads \
   --enable-debug \
   --disable-runpath

# WARNING !!!
# using %{?_smp_mflags} may break build

make

# build perl
cd mapscript/perl
perl Makefile.PL
make

# build python
cd ../python
python setup.py build

# build java
cd ../java
make interface
make

%install
rm -rf %{buildroot}

mkdir -p %{buildroot}/%{_sbindir}
mkdir -p %{buildroot}/%{_sysconfdir}/php.d
mkdir -p %{buildroot}%{_libdir}/php/modules
mkdir -p %{buildroot}/%{_bindir}
install -p -m 755 mapserv %{buildroot}/%{_sbindir}
install -p -m 755 shp2img %{buildroot}/%{_bindir}
install -p -m 755 shptree %{buildroot}/%{_bindir}
install -p -m 755 sortshp %{buildroot}/%{_bindir}
install -p -m 755 tile4ms %{buildroot}/%{_bindir}

install -p -m 755 mapscript/php3/php_mapscript.so %{buildroot}/%{_libdir}/php/modules/

# install perl module
pushd mapscript/perl
make DESTDIR=%{buildroot} pure_vendor_install
popd

# install python module
pushd mapscript/python
python setup.py install --root %{buildroot}
popd

# install java
mkdir -p %{buildroot}%{_javadir}
install -p -m 644 mapscript/java/mapscript.jar %{buildroot}%{_javadir}/

# install php config file
mkdir -p %{buildroot}%{_sysconfdir}/php.d/
cat > %{buildroot}%{_sysconfdir}/php.d/%{name}.ini <<EOF
; Enable %{name} extension module
extension=php_mapscript.so
EOF

# cleanup junks
for junk in {*.pod,*.bs,.packlist} ; do
find %{buildroot} -name "$junk" -exec rm -rf '{}' \;
done
# remove vera fonts, these are provided system wide
rm -rf %{buildroot}/%{_docdir}/%{name}-%{version}/tests/vera

# fix some exec bits
chmod 755 %{buildroot}/%{perl_vendorarch}/auto/mapscript/mapscript.so

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc README COMMITERS GD-COPYING HISTORY.TXT  
%doc INSTALL MIGRATION_GUIDE.TXT
%doc rfc symbols tests
%doc fonts
%{_bindir}/shp2img
%{_bindir}/shptree
%{_bindir}/sortshp
%{_bindir}/tile4ms
%{_sbindir}/mapserv

%files -n php-mapserver
%defattr(-,root,root)
%doc mapscript/php3/README
%doc mapscript/php3/examples
%config(noreplace) %{_sysconfdir}/php.d/%{name}.ini
%{_libdir}/php/modules/php_mapscript.so

%files perl
%defattr(-,root,root)
%doc mapscript/perl/examples
%dir %{perl_vendorarch}/auto/mapscript
%{perl_vendorarch}/auto/mapscript/*
%{perl_vendorarch}/mapscript.pm

%files python
%defattr(-,root,root)
%doc mapscript/python/README
%doc mapscript/python/examples
%doc mapscript/python/tests
%{python_sitearch}/*

%files java
%defattr(-,root,root)
%doc mapscript/java/README
%doc mapscript/java/examples
%doc mapscript/java/tests
%{_javadir}/*.jar

%changelog
* Thu Aug 30 2007 Oliver Falk <oliver@linux-kernel.at> 4.10.3-2
- Add fix to include libmapserver (in some places), instead of
  libmap, that doesn't exist (anymore)

* Thu Aug 30 2007 Oliver Falk <oliver@linux-kernel.at> 4.10.3-1
- Update to fix bz#256561, CVE-2007-4542

* Fri May 11 2007 Balint Cristian <cbalint@redhat.com> 4.10.2-4
- update require list properly.

* Thu May 10 2007 Balint Cristian <cbalint@redhat.com> 4.10.2-3
- use macros if possible in spec

* Thu May 10 2007 Balint Cristian <cbalint@redhat.com> 4.10.2-2
- further fixups for inclusion

* Thu May 10 2007 Balint Cristian <cbalint@redhat.com> 4.10.2-1
- new upsream tarball (bugfix)
- further fixups for inclusion

* Tue Apr 24 2007 Balint Cristian <cbalint@redhat.com> 4.10.1-3
- further fixups for inclusion
- enable java

* Fri Mar 16 2007 Balint Cristian <cbalint@redhat.com> 4.10.1-2
- add docs

* Fri Mar 16 2007 Balint Cristian <cbalint@redhat.com> 4.10.1-1
- first package