Blob Blame History Raw
%global pre_tag beta6

Name:           opam
Version:        2.0.0
Release:        0.5.%{pre_tag}%{?dist}
Summary:        Source-based package manager for OCaml

# Standard "OCaml linking exception", see included file.
License:        LGPLv2 with exceptions
URL:            https://github.com/ocaml/opam
Source0:        https://github.com/ocaml/opam/archive/%{version}-%{pre_tag}/%{name}-%{version}-%{pre_tag}.tar.gz

BuildRequires:  ocaml > 4.02.3
BuildRequires:  ocaml-findlib-devel
BuildRequires:  ocaml-ocamlbuild

BuildRequires:  ocaml-cmdliner-devel
BuildRequires:  ocaml-ocamlgraph-devel
BuildRequires:  ocaml-re-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-zip-devel
BuildRequires:  ocaml-result-devel

BuildRequires:  glpk-devel
BuildRequires:  zlib-devel

BuildRequires:  jbuilder
BuildRequires:  git

Requires:       opam-installer%{?_isa} = %{version}-%{release}

%description
Opam is a source-based package manager for OCaml. It supports multiple
simultaneous compiler installations, flexible package constraints, and
a Git-friendly development workflow.

%package installer
Summary:        Standalone script for opam install files

%description installer
Standalone script for working with opam .install files, see the opam
package for more information.

%prep
%autosetup -p1 -n %{name}-%{version}-%{pre_tag}

%build
%configure
sed 's/OPAMINSTALLER_FLAGS=/OPAMINSTALLER_FLAGS+=/g' -i Makefile

# Parallel build does not succeed.
make
make man

%install
# 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

# It seems that some tests fail under mock.
# I am not sure why at the moment. So for now I'll just turn them off.
#%check
#make tests

%files
%license LICENSE
%{_bindir}/opam
%exclude %{_mandir}/man1/opam-installer.1*
%{_mandir}/man1/*.1*

%files installer
%license LICENSE
# Upstream puts this documentation under opam-installer, not opam.
# Since I have opam require opam-installer anyway, this seems reasonable.
# (And there are lots of man pages in the opam package, so it has docs).
%doc README.md CHANGES AUTHORS CONTRIBUTING.md
%{_bindir}/opam-installer
%{_libdir}/ocaml/opam-installer
%{_mandir}/man1/opam-installer.1*

%changelog
* Wed Dec 13 2017 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.5.beta6
- Update to beta6, with a few fixes from beta5.

* Mon Dec 04 2017 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.4.beta5
- Add upstream patch correctly indicating LGPLv2 license of a few files.

* Tue Nov 28 2017 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.3.beta5
- Updated to latest upstream release.
- Split opam-installer out as a subpackage.

* Mon Oct 02 2017 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.2.beta4
- Updated to latest upstream release.

* Tue Aug 15 2017 Ben Rosser <rosser.bjr@gmail.com> 2.0.0-0.1.beta31
- Initial package.