Пакет ocsigen: Specfile

%set_strip_method none

Name: ocsigen
Version: 1.1.0
Release: alt3.1
Summary: Web programming framework

Group: Development/ML
License: LGPLv2+ with exceptions
Url: http://ocsigen.org/
Packager: Veaceslav Grecea <slavutich@altlinux.org>

Source: http://ocsigen.org/download/%name-%version.tar.gz

Requires: rpm-build-ocaml >= 1.1
BuildPreReq: rpm-build-ocaml >= 1.1

Provides: webserver

%define ocsigen_user ocsigen
%define ocsigen_group ocsigen
%define ocsigen_upload_dir /var/spool/ocsigen/uploads
%define ocsigen_www_dir /var/www/ocsigen

# Automatically added by buildreq on Mon Sep 22 2008
BuildRequires: camlp4 findlib libtinfo-devel ocaml-cryptokit ocaml-dbm ocaml-lwt ocaml-sqlite3 ocaml-zip ocamldoc ocamlnet

Source1: %name.logrotate
Source2: %name.init
Patch1: %name-alt-configure.patch
Patch2: %name-alt-makefile.patch

%description
Ocsigen is a research project aimed at developing new programming
techniques for the Web. Its goal is to offer an alternative to
Apache/PHP, based on cutting-edge technologies from research in
programming languages. It contains a full featured Web server and a
programming framework, called Eliom, that provides a new way to create
dynamic Web sites. With Eliom, you program in a concise and modular
way, with a strong type system which helps you to produce valid
XHTML. Eliom handles sessions, URLs, and page parameters
automatically.

The main features are:

- Extensible Web server, implemented with cooperative threads

- Extensions for serving static pages, CGI pages, for HTTP redirections,
  data compression, reverse proxy, access control, etc.

- Eliom Web programming framework:

- Continuation-based Web programming

- Static checking of XHTML (using OCaml or OCamlDuce)

- Automatic management of sessions

- Concise and modular programming

%package        doc
Summary:        Documetation files for %name
Group:          Development/Other
Requires:       %name = %version-%release
BuildArch:      noarch

%description    doc
The %{name}-doc package contains documentation files for %name.

%prep
%setup -q
%patch1 -p0
%patch2 -p0

mv README README.old
iconv -f iso-8859-1 -t utf-8 < README.old > README

%build
# --enable-nativecode requires OCaml 3.11.
./configure --prefix /usr \
  --temproot %buildroot \
  --extralibdir %_libdir \
  --disable-nativecode \
  --enable-camlzip \
  --disable-ocamlduce \
  --mandir /usr/share/man/man1 \
  --uploaddir %ocsigen_upload_dir \
  --examplesdir %_libdir/%name/examples \
  --docdir /usr/share/doc

make depend
make
make doc

%install
mkdir -p %buildroot%_libdir/ocaml/stublibs
mkdir -p %buildroot%ocsigen_upload_dir
mkdir -p %buildroot%_sysconfdir/logrotate.d

make install
# hasher break build and exit with error here
#make logrotate

install -m755 server/ocsigentop %buildroot%_bindir
install -pD -m644 %SOURCE1 %buildroot%_sysconfdir/logrotate.d/%name
install -pD -m755 %SOURCE2 %buildroot%_initdir/%name

cp eliom/eliommod_{cookies,gc,pagegen,sessiongroups,timeouts}.cmi %buildroot%_libdir/ocaml/site-lib/ocsigen
rm -rf %buildroot%_initdir/var/run

%files
%doc COPYING LICENSE
%config %dir %_sysconfdir/ocsigen/
%config(noreplace) %_sysconfdir/logrotate.d/ocsigen
%config(noreplace) %_sysconfdir/ocsigen/ocsigen.conf
%config(noreplace) %_sysconfdir/ocsigen/mime.types
%config(noreplace) %_sysconfdir/ocsigen/ocsigen.conf.opt.sample
%config(noreplace) %_sysconfdir/ocsigen/ocsigen.conf.sample
%attr(0755,root,root) %_initdir/%name
%_bindir/*
%_man1dir/*
%ocsigen_www_dir
%attr(2770,root,%ocsigen_group) %_logdir/ocsigen
%_libdir/ocaml/site-lib/ocsigen
%_libdir/ocaml/stublibs
%_libdir/ocsigen/*
%_localstatedir/%name

%files doc
%doc doc/*

%pre
%_sbindir/groupadd -r -f %ocsigen_group ||:
%_sbindir/useradd -r -g %ocsigen_group -d /dev/null -s /dev/null -n %ocsigen_user \
	2> /dev/null > /dev/null ||:

%post
%post_service %name

%preun
%preun_service %name


%changelog
* Tue Dec 07 2010 Igor Vlasenko <viy@altlinux.ru> 1.1.0-alt3.1
- rebuild with new openssl and/or boost by request of git.alt administrator

* Sat Dec 13 2008 Veaceslav Grecea <slavutich@altlinux.org> 1.1.0-alt3
- rebuild

* Tue Oct 07 2008 Veaceslav Grecea <slavutich@altlinux.org> 1.1.0-alt2
- darcs update

* Wed Sep 17 2008 Veaceslav Grecea <slavutich@altlinux.org> 1.1.0-alt1
- Initial build for ALT Linux

* Tue Sep  2 2008 Richard W.M. Jones <rjones@redhat.com> - 1.1.0-5
- Prevent prelink from stripping binaries.
- Cryptokit packaging bug is fixed, so we don't need the workaround
  patch for it any longer.
- Better way to stop it calling chown during install.

* Mon Sep  1 2008 Richard W.M. Jones <rjones@redhat.com> - 1.1.0-3
- Initial RPM release.