]> git.pld-linux.org Git - packages/ocaml.git/blobdiff - ocaml.spec
- ugly hack for db3 removed (now patch is ugly)
[packages/ocaml.git] / ocaml.spec
index 4203f60f910febd77ccdf86565104dd5115cd844..a82294c37b01b1769bccad06cf7e4841f55bfa09 100644 (file)
@@ -7,33 +7,38 @@
 %{?_without_x11:%define        _without_tk     1}
 
 Summary:       The Objective Caml compiler and programming environment
-Summary(pl):   Kompilator Objektowego Caml oraz ¶rodowisko programistyczne
+Summary(pl):   Kompilator Objektowego Camla oraz ¶rodowisko programistyczne
 Name:          ocaml
 Version:       3.04
-Release:       4
+Release:       9
 License:       distributable
 Vendor:                Group of implementors <caml-light@inria.fr>
 Group:         Development/Languages
 Source0:       ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}.tar.gz
-Source1:       ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}-refman.info.tar.gz
-Source2:       ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}-refman.html.tar.gz
-Source3:       ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}-refman.ps.gz
-Source4:       ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-refman.html.tar.gz
-Source5:       ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-refman.ps.gz
-Source6:       ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-tutorial.html.tar.gz
-Source7:       ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-tutorial.ps.gz
+Source1:       ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}-refman.html.tar.gz
+Source2:       ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}-refman.ps.gz
+Source3:       ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-refman.html.tar.gz
+Source4:       ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-refman.ps.gz
+Source5:       ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-tutorial.html.tar.gz
+Source6:       ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-tutorial.ps.gz
 Patch0:                %{name}-build.patch
 Patch1:                %{name}-DESTDIR.patch
 Patch2:                %{name}-manlinks.patch
 Patch3:                %{name}-db3.patch
+Patch4:                %{name}-powerpcfix.patch
+Patch5:                %{name}-objinfo.patch
+Patch6:                %{name}-opt-symbols.patch
 URL:           http://caml.inria.fr/
+Requires:      ocaml-runtime = %{version}-%{release}
 BuildRequires: db3-devel
 %{!?_without_tk:BuildRequires:         tk-devel}
 %{!?_without_x11:BuildRequires:                XFree86-devel}
+%{!?_without_emacs:BuildRequires:      xemacs}
 %{!?_without_emacs:BuildRequires:      xemacs-common}
 %{!?_without_emacs:BuildRequires:      xemacs-fsf-compat-pkg}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+
 %description
 Objective Caml is a high-level, strongly-typed, functional and
 object-oriented programming language from the ML family of languages.
@@ -55,25 +60,12 @@ narz
 Summary:       PostScript documentation for OCaml
 Summary(pl):   Dokumentacja dla OCaml-a w formacie PostSript
 Group:         Development/Tools
-Requires:      %{name} = %{version}
 
 %description doc-ps
-PostScript documentation for OCaml
+PostScript documentation for OCaml.
 
 %description doc-ps -l pl
-Dokumentacja dla OCaml-a w formacie PostSript
-
-%package doc-html
-Summary:       HTML documentation for OCaml
-Summary(pl):   Dokumentacja dla OCaml-a w formacie HTML
-Group:         Development/Tools
-Requires:      %{name} = %{version}
-
-%description doc-html
-HTML documentation for OCaml
-
-%description doc-html -l pl
-Dokumentacja dla OCaml-a w formacie HTML
+Dokumentacja dla OCamla w formacie PostSript.
 
 %package emacs
 Summary:       Emacs mode for OCaml
@@ -82,43 +74,93 @@ Group:              Development/Tools
 Requires:      %{name} = %{version}
 
 %description emacs
-Emacs mode files for Objective Caml language
+Emacs mode files for Objective Caml language.
 
 %description emacs -l pl
-Pliki trybu Emacsa dla jêzyka Objektowego Caml
+Pliki trybu Emacsa dla jêzyka Objektowego Camla.
 
-%package labltk
+%package runtime
+Summary:       Runtime system for OCaml
+Summary(pl):   ¦rodowisko uruchomieniowe dla OCamla
+Group:         Libraries
+
+%description runtime
+This package contains binaries needed to run bytecode OCaml programs:
+ocamlrun bytecode interpreter, and basic dynamic link libraries.
+
+%description runtime -l pl
+Pakiet ten zawiera binaria potrzebne do uruchamiania programów w
+OCamlu skompilowanych do bytecodu: interpreter bytecodu ocamlrun oraz
+podstawowe bibliotki linkowane dynamicznie.
+
+%package labltk-devel
 Summary:       LabelTk library for OCaml
 Summary(pl):   Biblioteka LablTk dla OCamla
 Group:         Development/Libraries
-Requires:      %{name} = %{version}
+Requires:      %{name}-labltk = %{version}-%{release}
+
+%description labltk-devel
+LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
+contains files needed to develop OCaml programs using LablTk.
+
+%description labltk-devel -l pl
+Biblioteka LablTk daje programom napisanym w OCamlu dostêp do widgetów
+Tcl/Tk. Pakiet ten zawiera pliki niezbêdne do tworzenia programów
+u¿ywaj±cych LablTk.
+
+%package labltk
+Summary:       Runtime for LabelTk library
+Summary(pl):   ¦rodowisko uruchomieniowe dla biblioteki LablTk
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
 
 %description labltk
-LablTk gives OCaml program access to Tcl/Tk GUI widgets.
+LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
+contains files needed to run bytecode OCaml programs using LablTk.
 
 %description labltk -l pl
 Biblioteka LablTk daje programom napisanym w OCamlu dostêp do widgetów
-Tcl/Tk.
+Tcl/Tk. Pakiet ten zawiera binaria potrzebne do uruchamiania programów
+u¿ywaj±cych LablTk.
+
+%package x11graphics-devel
+Summary:       X11 graphic output for OCaml
+Summary(pl):   Iksowe wyj¶cie graficzne dla OCamla
+Group:         Development/Libraries
+Requires:      %{name}-x11graphics = %{version}-%{release}
+
+%description x11graphics-devel
+x11graphics module gives OCaml program access to drawing in X11
+windows. This package contains files needed to develop OCaml programs
+using x11graphics.
+
+%description x11graphics-devel -l pl
+Modu³ x11graphics daje programom napisanym w OCamlu dostêp do
+rysowania po oknach X11. Pakiet ten zawiera pliki niezbêdne do
+tworzenia programów u¿ywaj±cych x11graphics.
 
 %package x11graphics
 Summary:       X11 graphic output for OCaml
 Summary(pl):   Iksowe wyj¶cie graficzne dla OCamla
 Group:         Development/Libraries
-Requires:      %{name} = %{version}
+Requires:      %{name} = %{version}-%{release}
 
 %description x11graphics
-This package gives OCaml program access to drawing in X11 windows.
+x11graphics module gives OCaml program access to drawing in X11
+windows. This package contains files needed to run bytecode OCaml
+programs using x11graphics.
 
 %description x11graphics -l pl
-Ten pakiet daje programom napisanym w OCamlu dostêp do rysowania po
-oknach X11.
+Modu³ x11graphics daje programom napisanym w OCamlu dostêp do
+rysowania po oknach X11. Pakiet ten zawiera binaria potrzebne do
+uruchamiania programów u¿ywaj±cych x11graphics.
 
 %package camlp4
 Summary:       Objective Caml Preprocessor
 Summary(pl):   Preprocesor Ocamla
 Group:         Development/Languages
-Requires:      %{name} = %{version}
-Provides:      camlp4 = %{version}
+Requires:      %{name} = %{version}-%{release}
+Provides:      camlp4 = %{version}-%{release}
 Obsoletes:     camlp4
 
 %description camlp4
@@ -150,26 +192,44 @@ Camlp4 umie 
 Dziêki temu jest mo¿liwe posiadanie wersji swoich ¼róde³
 kompilowalnych przez kompilatora Ocamla bez preprocesingu.
 
+%package devel
+Summary:       Compiled parts of OCaml compiler
+Summary(pl):   Skompilowane kawa³ki kompilatora OCamla
+Group:         Development/Languages
+Requires:      %{name} = %{version}-%{release}
+
+%description devel
+This package contains *.cmi and *.cmo files being parts of OCaml
+compiler. They are needed to compile some programs.
+
+%description devel -l pl
+Pakiet ten zawiera pliki *.cmi oraz *.cmo bêd±ce cze¶ciami kompilatora
+OCamla. S± one wymagane do kompilacji niektórych programów.
+
 %prep
 %setup -q -T -b 0
 %setup -q -T -D -a 1
-%setup -q -T -D -a 2
 # order mess with docs somewhat
 mkdir docs
 mkdir docs/html
 mv htmlman docs/html/ocaml
-cp %{SOURCE3} docs/ocaml.ps.gz
-%setup -q -T -D -a 4
+cp %{SOURCE2} docs/ocaml.ps.gz
+%setup -q -T -D -a 3
 mv camlp4-%{version}-refman.html docs/html/camlp4
-cp %{SOURCE5} docs/camlp4.ps.gz
-%setup -q -T -D -a 6
+cp %{SOURCE4} docs/camlp4.ps.gz
+%setup -q -T -D -a 5
 mv camlp4-%{version}-tutorial.html docs/html/camlp4-tutorial
-cp %{SOURCE7} docs/camlp4-tutorial.ps.gz
+cp %{SOURCE6} docs/camlp4-tutorial.ps.gz
 
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%ifarch ppc
+%patch4 -p1
+%endif
+%patch5 -p1
+%patch6 -p1
 
 %build
 ./configure \
@@ -181,27 +241,12 @@ cp %{SOURCE7} docs/camlp4-tutorial.ps.gz
        %{?_without_tk:-notk} \
        -with-pthread
 
-# this is crude hack (works in addition to ocaml-db3.patch)
-cp config/Makefile config/Makefile.tmp
-sed -e 's|-ldb1|-ldb|; s|-I%{_includedir}/db1||' < config/Makefile.tmp > config/Makefile
-
 %{__make} world bootstrap opt ocamlc.opt ocamlopt.opt
 %{__make} -C camlp4 optp4
-
-# hack info pages to contain dir entry
-cat <<EOF >infoman/ocaml.info
-INFO-DIR-SECTION Programming Languages:
-START-INFO-DIR-ENTRY
-* Ocaml: (ocaml).                             The Ocaml language
-END-INFO-DIR-ENTRY
-EOF
-zcat infoman/ocaml.info.gz >> infoman/ocaml.info
-
-gzip -9nf infoman/ocaml.info
+%{__make} -C tools objinfo
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_infodir}
 
 %{__make} install DESTDIR=$RPM_BUILD_ROOT
 
@@ -212,49 +257,70 @@ install -d $RPM_BUILD_ROOT%{_infodir}
        EMACSDIR="%{_libdir}/emacs/site-lisp"
 %endif
 
-cp -p {parsing/{location,longident,parsetree},typing/typecore}.{cm,ml}i \
-       $RPM_BUILD_ROOT%{_libdir}/%{name}
+# symlink .opt versions of compilers (if present)
+for f in ocamlc ocamlopt; do
+       if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then
+               mv -f $RPM_BUILD_ROOT%{_bindir}/$f \
+                       $RPM_BUILD_ROOT%{_bindir}/$f.byte
+               ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
+       fi
+done
+
+rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/*.ml{,i}
+rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/*/*.ml{,i}
+
+# move includes to the proper place
+install -d $RPM_BUILD_ROOT%{_includedir}
+mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml
+# but leave compatibility symlink
+ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml
 
-for f in ocamlc ocamlopt camlp4o camlp4r; do
-       mv -f $RPM_BUILD_ROOT%{_bindir}/$f $RPM_BUILD_ROOT%{_bindir}/$f.byte
-       ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
+# compiled sources of compiler, needed by some programs
+for f in {asm,byte}comp parsing typing utils ; do
+       install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
+       cp $f/*.{cmi,cmo,cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
 done
 
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{_name}/*.ml
-ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
+# this isn't installed by default, but is useful
+install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo
 
-install infoman/*info* $RPM_BUILD_ROOT%{_infodir}
+# instead of adding new directories to ld.conf, we use single dirctory
+# for dlls comming from other packages, they should be symlinked here
+echo %{_libdir}/%{name} > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf
 
-gzip -9nf LICENSE Changes README Upgrading
+%{!?_without_tk:(cd $RPM_BUILD_ROOT%{_libdir}/%{name} && ln -s labltk/dll*.so .)}
 
-%clean
-rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_examplesdir}
+mv otherlibs/labltk/example $RPM_BUILD_ROOT%{_examplesdir}/%{name}-labltk-%{version}
 
-%post
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
 
-%postun
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%clean
+rm -rf $RPM_BUILD_ROOT
 
+%files runtime
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/ocamlrun
+%attr(755,root,root) %{_libdir}/%{name}/dll[bmnstu]*.so
 
 %files
 %defattr(644,root,root,755)
-%doc *.gz
+%doc LICENSE Changes README Upgrading
+%doc docs/html/ocaml
 %attr(755,root,root) %{_bindir}/ocaml
-%attr(755,root,root) %{_bindir}/ocaml[cmdlopry]*
+%attr(755,root,root) %{_bindir}/ocaml[cmdlopy]*
 %attr(755,root,root) %{_bindir}/*labels
+%{_includedir}/caml
 %{_libdir}/%{name}/caml
 %{_libdir}/%{name}/threads
 %{_libdir}/%{name}/[abefhimnopqrstuw]*.*
 %{_libdir}/%{name}/callback.*
 %{_libdir}/%{name}/char.*
-%{_libdir}/%{name}/condition.*
 %{_libdir}/%{name}/dbm.*
 %{_libdir}/%{name}/digest.*
-%attr(755,root,root) %{_libdir}/%{name}/dll[bmnstu]*.so
+%{_libdir}/%{name}/dynlink.*
 %{_libdir}/%{name}/g[ce]*.*
 %{_libdir}/%{name}/l*.cm*
-%{_libdir}/%{name}/l*.mli
 %{_libdir}/%{name}/lib[abc]*.a
 %{_libdir}/%{name}/libmldbm.a
 %{_libdir}/%{name}/lib[nstu]*.a
@@ -265,10 +331,14 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/%{name}/camlheader_ur
 %attr(755,root,root) %{_libdir}/%{name}/*labels
 %{_mandir}/man*/*ocaml*
-%{_infodir}/*
+
+%files devel
+%defattr(644,root,root,755)
+%{_libdir}/%{name}/compiler
 
 %files camlp4
 %defattr(644,root,root,755)
+%doc docs/html/camlp4*
 %attr(755,root,root) %{_bindir}/*camlp4*
 %attr(755,root,root) %{_bindir}/ocpp
 %attr(755,root,root) %{_bindir}/odyl
@@ -277,24 +347,30 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man*/*ocpp*
 
 %if %{!?_without_tk:1}%{?_without_tk:0}
-%files labltk
+%files labltk-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/labltk
 %attr(755,root,root) %{_bindir}/ocamlbrowser
 %dir %{_libdir}/%{name}/labltk
 %{_libdir}/%{name}/labltk/*.cm*
 %{_libdir}/%{name}/labltk/*.a
-%{_libdir}/%{name}/labltk/*.mli
-%attr(755,root,root) %{_libdir}/%{name}/labltk/*.so
-%attr(755,root,root) %{_libdir}/%{name}/labltk/labltktop
 %attr(755,root,root) %{_libdir}/%{name}/labltk/tkcompiler
+%{_examplesdir}/%{name}-labltk-%{version}
+
+%files labltk
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/labltk/dlllabltk*
+%{_libdir}/%{name}/dlllabltk*
 %endif
 
 %if %{!?_without_x11:1}%{?_without_x11:0}
-%files x11graphics
+%files x11graphics-devel
 %defattr(644,root,root,755)
 %{_libdir}/%{name}/graphics*
 %{_libdir}/%{name}/libgraphics.a
+
+%files x11graphics
+%defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/%{name}/dllgraphics.so
 %endif
 
@@ -307,7 +383,3 @@ rm -rf $RPM_BUILD_ROOT
 %files doc-ps
 %defattr(644,root,root,755)
 %doc docs/*.ps.gz
-
-%files doc-html
-%defattr(644,root,root,755)
-%doc docs/html/*
This page took 0.131154 seconds and 4 git commands to generate.