%global pre_tag rc
Name: opam
Version: 2.0.0
Release: 0.12.%{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-cppo
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
BuildRequires: gcc-c++
# Needed to install packages and run opam init.
Requires: bzip2
Requires: gcc
Requires: make
Requires: m4
Requires: patch
Requires: unzip
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}
# Fix build on new jbuilder/dune by removing deprecated "variable prefix" jbuild syntax.
sed "s,!^,^,g" -i src/state/jbuild
sed "s,!^,^,g" -i src/core/jbuild
sed "s,!^,^,g" -i src/jbuild
%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 Oct 24 2018 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.12.rc
- Add requires on make and m4 for opam init setup.
* Tue Oct 02 2018 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.11.rc
- Add Requires on gcc so that opam init works properly (rhbz#1631969).
* Sat Sep 22 2018 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.10.rc
- Add missing Requires on patch, unzip (rhbz#1631969).
* Tue Aug 21 2018 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.9.rc
- Updated to opam 2.0 rc1.
- Fix FTBFS on Fedora 29/Rawhide.
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.8.beta6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Apr 30 2018 Ben Rosser <rosser.bjr@gmail.com> - 2.0.0-0.7.beta6
- Add missing dependency on bzip2 (#1572862).
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.6.beta6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* 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.