-%define mod_name mod_mono
-%define xsp_version 0.4
+#
+# TODO:
+# - figure out how to kill mod-mono-server.exe process
+# when apache is restarted
+#
+%define _name mod_mono
+%define apxs /usr/sbin/apxs
Summary: Mono module for Apache 2
Summary(pl): Modu³ Mono dla serwera Apache 2
-Name: apache-mod_mono
-Version: 0.3.7
+Name: apache-%{_name}
+Version: 1.0.4
Release: 1
Epoch: 1
License: Apache
Group: Networking/Daemons
-Source0: http://www.apacheworld.org/modmono/%{version}/%{mod_name}-%{version}.tar.gz
-# Source0-md5: 75c7f682ce585382827bb179369a86cc
-Source1: http://go-mono.com/archive/xsp-%{xsp_version}.tar.gz
-# Source1-md5: aacb2d6b0dc3f54382c09be0976f6a7f
-Source2: mono.conf
-URL: http://www.apacheworld.org/modmono/
-BuildRequires: apache-devel >= 2.0
+Source0: http://mono2.ximian.com/archive/%{version}/%{_name}-%{version}.tar.gz
+# Source0-md5: 0ba69cf5716920c75e628715f7236401
+# Source0-size: 18245041
+Patch0: %{name}-apu-config.patch
+Patch1: %{name}-apr_fixes.patch
+URL: http://www.mono-project.com/
+BuildRequires: apache-devel >= 2.0.52-2
+BuildRequires: %{apxs}
BuildRequires: autoconf
-BuildRequires: mono
-Requires: apache >= 2.0
-#Requires: httpd-mmn = %(cat %{_includedir}/httpd/.mmn)
+BuildRequires: automake
+BuildRequires: libtool
+BuildRequires: mono-csharp >= 1.0
+Requires: xsp
+Requires: apache >= 2.0.52-2
+Requires: mono-csharp >= 1.0
Obsoletes: mod_mono
+ExcludeArch: alpha
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define httpdir /home/services/httpd
-%define moddir /usr/lib/apache
+%define _httpdir /home/services/httpd
+%define _pkglibdir %(%{apxs} -q LIBEXECDIR)
+%define _sysconfdir /etc/httpd
%description
This is an experimental module that allows you to run ASP.NET pages on
Uniksie z serwerem Apache i Mono.
%prep
-%setup -q -n %{mod_name}-0.3 -a 1
+%setup -q -n %{_name}-%{version}
+%patch0 -p1
+%patch1 -p1
%build
-# Build sample ASP.NET pages from xsp distribution
-cd xsp-%{xsp_version}
-%{__make}
-%{__make} install
-cd ..
-
+rm -rf $RPM_BUILD_ROOT
# Build Apache Module
+%{__libtoolize}
+%{__aclocal}
%{__autoconf}
+%{__automake}
+
%configure \
- --with-apxs=%{_sbindir}/apxs
-%{__make}
+ --with-apxs=%{apxs} \
+ --with-apr-config=%{_bindir}/apr-1-config \
+ --with-apu-config=%{_bindir}/apu-1-config \
+ CFLAGS="%{rpmcflags} -D_GNU_SOURCE -D_LARGEFILE64_SOURCE"
-# Build Mono DLL
-%{__make} -C src -f makedll.mak
+%{__make} \
+ DESTDIR=$RPM_BUILD_ROOT
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/httpd/httpd.conf,%{moddir}} \
- $RPM_BUILD_ROOT%{httpdir}/{.wapi,mono}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/httpd.conf,%{_pkglibdir},%{_mandir}/man8}
-cp %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/httpd.conf/
-install src/.libs/libmod_mono.so $RPM_BUILD_ROOT%{moddir}/mod_mono.so
-install src/ModMono.dll $RPM_BUILD_ROOT%{_libdir}
-cp -r xsp-%{xsp_version}/server/test/* $RPM_BUILD_ROOT%{httpdir}/mono/
+install src/.libs/%{_name}.so $RPM_BUILD_ROOT%{_pkglibdir}/%{_name}.so
+install man/%{_name}.8 $RPM_BUILD_ROOT%{_mandir}/man8
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/httpd/httpd.conf/70_mod_mono.conf <<EOF
-LoadModule mono_module lib/apache/mod_mono.so
-MonoApplication /mono %{httpdir}/mono/
+cat > $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf/70_%{_name}.conf <<EOF
+LoadModule mono_module modules/%{_name}.so
+MonoApplications "/asp_net:%{_httpdir}/asp_net"
+Alias /asp_net "%{_httpdir}/asp_net"
+<Location /asp_net>
+ SetHandler mono
+</Location>
EOF
%clean
%files
%defattr(644,root,root,755)
+%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/httpd.conf/*
%doc ChangeLog INSTALL NEWS README
-%attr(755,root,root) %{moddir}/mod_mono.so
-%{_libdir}/ModMono.dll
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/httpd/httpd.conf/*
-%attr(750,http,http) %{httpdir}/.wapi
-%defattr(644,http,http,755)
-%{httpdir}/mono
+%attr(755,root,root) %{_pkglibdir}/%{_name}.so
+%{_mandir}/man8/*