# comment out when not pre-release #global pre_tag beta6 %define rel 2 Name: opam Version: 2.0.6 Release: %mkrel %{?pre_tag:0.%pre_tag.}%{rel} Summary: A source-based package manager for OCaml License: LGPLv3 Group: Development/OCaml URL: http://opam.ocamlpro.com/ Source0: https://github.com/ocaml/opam/archive/%{version}%{?pre_tag:-%pre_tag}/%{name}-%{version}%{?pre_tag:-%pre_tag}.tar.gz BuildRequires: ocaml-compiler BuildRequires: hevea BuildRequires: ocaml-findlib-devel BuildRequires: ocaml-ocamlbuild BuildRequires: ocaml-cppo-devel BuildRequires: ocaml-cudf-devel BuildRequires: ocaml-ocamlgraph-devel BuildRequires: ocaml-cmdliner-devel BuildRequires: ocaml-ocamlgraph-devel BuildRequires: ocaml-re-devel >= 1.7.2 BuildRequires: ocaml-seq-devel BuildRequires: ocaml-cudf-devel BuildRequires: ocaml-opam-file-format-devel BuildRequires: ocaml-dose3-devel BuildRequires: ocaml-extlib-devel BuildRequires: ocaml-mccs-devel BuildRequires: ocaml-camlzip-devel BuildRequires: ocaml-result-devel BuildRequires: glpk-devel BuildRequires: zlib-devel BuildRequires: ocaml-dune BuildRequires: git # Needed to install packages and run opam init. Requires: bubblewrap Requires: bzip2 Requires: gcc Requires: patch Requires: unzip %description OPAM stands for OCaml PAckage Manager. It aims to suit to a vast number of users and use cases, and has unique features: * Powerful handling of dependencies: versions constraints, optional dependencies, conflicts, etc. * Multiple repositories backends: HTTP, rsync, git * Ease to create packages and repositories * Ability to switch between different compiler versions Typically, OPAM will probably make your life easier if you recognize yourself in at least one of these profiles: * You use multiple versions of the OCaml compiler, or you hack the compiler yourself and needs to frequently switch between compiler versions. * You use or develop software that needs a specific and/or modified version of the OCaml compiler to be installed. * You use or develop software that depends on a specific version of an OCaml library, or you just want to install a specific version of a package, not just the latest one. * You want to create your own packages yourself, put them on your own repository, with minimal effort. %package doc Summary: Documentation files for %{name} Group: Documentation Requires: %{name} = %{version}-%{release} %description doc The %{name}-doc package contains documentation for using %{name}. %prep %autosetup -p1 -n %{name}-%{version}%{?pre_tag:-%pre_tag} %build %configure sed 's/OPAMINSTALLER_FLAGS=/OPAMINSTALLER_FLAGS+=/g' -i Makefile export JBUILDER_ARGS="--verbose" # Need to set the path so Makefile can run the opam command. export PATH=$PWD:$PATH # Parallel build does not succeed. make %install export JBUILDER_ARGS="--verbose" export PATH=$PWD:$PATH # The makefile looks like it tries to invoke ocamlfind but only if DESTDIR # isn't set. If it is set (which it is) LIBINSTALLDIR must be set too # for installing opam-installer metadata. %make_install LIBINSTALL_DIR=%{buildroot}/%{_libdir}/ocaml # However it looks like some (extra) documentation gets # installed in the wrong place so... delete it. rm -rf %{buildroot}%{_prefix}/doc %files %license LICENSE %doc README.md CHANGES AUTHORS CONTRIBUTING.md %{_bindir}/%{name} %{_bindir}/%{name}-installer %{_mandir}/man1/%{name}.1* %{_mandir}/man1/%{name}-*.1* %files doc %doc doc/ %doc tests/ %doc shell/