From dc7b2e57aad942cad0c952419888f5b3f90677b1 Mon Sep 17 00:00:00 2001 From: Andy Li Date: Tue, 5 Mar 2019 09:52:44 +0800 Subject: [PATCH] Initial import. --- .gitignore | 1 + ocaml-dune.spec | 162 ++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 164 insertions(+) create mode 100644 .gitignore create mode 100644 ocaml-dune.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e725bf1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/dune-1.7.3.tar.gz diff --git a/ocaml-dune.spec b/ocaml-dune.spec new file mode 100644 index 0000000..4995388 --- /dev/null +++ b/ocaml-dune.spec @@ -0,0 +1,162 @@ +Name: ocaml-dune +Version: 1.7.3 +Release: 1%{?dist} +Summary: A composable build system for OCaml + +%global libname %(echo %{name} | sed -e 's/^ocaml-//') + +# Dune itself is MIT, and there are bundled libs that are LGPLv2 with exceptions and ISC. +License: MIT and LGPLv2 with exceptions and ISC + +URL: https://dune.build +Source0: https://github.com/ocaml/%{libname}/archive/%{version}/%{libname}-%{version}.tar.gz + + +BuildRequires: ocaml >= 4.02.3 +BuildRequires: ocaml-findlib-devel + +# Depend on /usr/bin/sphinx-build for python version invariance. +BuildRequires: /usr/bin/sphinx-build + +# Required by tests. +BuildRequires: git +BuildRequires: ocaml-menhir +BuildRequires: ocaml-result-devel + +# Dune has vendored deps (ugh): +# I'm not clear on how to unbundle them. +# It seems to be unsupported upstream; the bootstrap process for dune +# doesn't seem to be able to detect libraries installed systemwide. +# https://github.com/ocaml/dune/issues/220 +Provides: bundled(ocaml-opam-file-format) = 2.0.0 +Provides: bundled(ocaml-cmdliner) = 1.0.2 +Provides: bundled(ocaml-re) = 1.7.1 + +Provides: dune = %{version}-%{release} + +Provides: jbuilder = %{version}-%{release} +Obsoletes: jbuilder < 1.0.1-3 + +%description +Dune is a build system designed for OCaml/Reason projects only. It focuses +on providing the user with a consistent experience and takes care of most of +the low-level details of OCaml compilation. All you have to do is provide a +description of your project and Dune will do the rest. + +The scheme it implements is inspired from the one used inside Jane Street and +adapted to the open source world. It has matured over a long time and is used +daily by hundred of developers, which means that it is highly tested and +productive. + +%package doc +Summary: HTML documentation for %{name} +Requires: %{name} = %{version}-%{release} + +BuildArch: noarch + +%description doc +HTML documentation for dune, a composable build system for OCaml. + +%prep +%autosetup -n %{libname}-%{version} -p1 + +%build +# The dune build script figures out if the native code compiler is available +# and uses it if it is, otherwise it uses the bytecode compiler. Thus I think +# we just need to "make" here. +%make_build release +%make_build doc + +%install +# Dune's makefile has a "make install" target. Tragically, it uses opam-install(er) +# to install itself. Even more tragically, opam now requires dune to build. +# Therefore as a workaround we can just manually install things ourselves-- +# Dune is *mostly* just a binary, making this easy. +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_mandir}/man1 +mkdir -p %{buildroot}%{_mandir}/man5 + +cp -av _boot/default/bin/main_dune.exe %{buildroot}%{_bindir}/dune +ln -sfvbn dune %{buildroot}%{_bindir}/jbuilder +cp -av _boot/default/doc/*.1 %{buildroot}%{_mandir}/man1/ +cp -av _boot/default/doc/*.5 %{buildroot}%{_mandir}/man5/ + +# Install documentation by way of pkgdocdir. +mkdir -p %{buildroot}%{_pkgdocdir}/ +cp -ar README.md CHANGES.md doc/_build/* %{buildroot}%{_pkgdocdir}/ + +%check +# Do not run the unit tests which assume opam is installed. + +%{buildroot}%{_bindir}/dune --version + +%files +%license LICENSE.md +%doc %{_pkgdocdir}/README.md +%doc %{_pkgdocdir}/CHANGES.md +%{_bindir}/jbuilder +%{_bindir}/dune +%{_mandir}/man*/dune* +%dir %{_pkgdocdir} + +%files doc +%exclude %{_pkgdocdir}/README.md +%exclude %{_pkgdocdir}/CHANGES.md +%doc %{_pkgdocdir}/* + +%changelog +* Fri Mar 01 2019 Andy Li - 1.7.3-1 +- Renamed source package from jbuilder to ocaml-dune. +- Updated URLs and license according to upstream changes. +- Updated to latest upstream release (#1600105). +- Removed 1113.patch which has been applied upstream in eariler version. +- Removed rpm check section since the upstream tests depend on opam. + +* Fri Feb 01 2019 Fedora Release Engineering - 1.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Aug 07 2018 Ben Rosser - 1.0.1-1 +- Updated to latest upstream release. +- Manpages have been renamed to 'dune'. A 'dune' binary is now provided as well. + +* Fri Jul 13 2018 Fedora Release Engineering - 1.0-0.12.beta20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed May 02 2018 Ben Rosser - 1.0-0.11.beta20 +- Updated to latest upstream release (#1537836). + +* Tue Mar 06 2018 Ben Rosser - 1.0-0.10.beta18 +- Updated to latest upstream release (#1537836). + +* Mon Feb 12 2018 Ben Rosser - 1.0-0.9.beta17 +- Update to upstream re-release of beta 17. + +* Wed Feb 07 2018 Fedora Release Engineering - 1.0-0.8.beta17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 30 2018 Ben Rosser - 1.0-0.7.beta18 +- Fix build failure on ppc64 by always using bytecode ocaml compiler to bootstrap. + +* Wed Jan 24 2018 Ben Rosser 1.0-0.6.beta17 +- Update to latest upstream release, beta17 (#1537836). +- Remove unit tests that require external deps (that themselves require jbuilder). + +* Tue Nov 14 2017 Ben Rosser 1.0-0.5.beta16 +- Update to latest upstream release, beta16 (#1509749). +- Add pre_tag version suffix to source flie name to avoid confusion. + +* Mon Oct 23 2017 Ben Rosser 1.0-0.4.beta14 +- Update to latest upstream release, beta14 (#1504414). + +* Mon Aug 28 2017 Ben Rosser 1.0-0.3.beta12 +- Update to latest upstream release, beta12. +- Fix typo in description. +- Use simpler github source URL. +- Use make_build macros when compiling. + +* Tue Aug 15 2017 Ben Rosser 1.0-0.2.beta11 +- Update to a git snapshot so opam can be built against. +- Modernize ocaml packaging. + +* Tue Aug 1 2017 Ben Rosser 1.0-0.1.beta11 +- Initial package. diff --git a/sources b/sources new file mode 100644 index 0000000..c6ca616 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (dune-1.7.3.tar.gz) = 744ff584acc1695f3720b142a5bc00a26901d488531629fe386f4f3b02f13b86b74e7ba5801d468f4b8ebfcee9bd15017e6dd0d0c2ae242eaef40aa99668a39d