diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..163ec3c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/cinaps-*.tar.gz diff --git a/ocaml-cinaps.spec b/ocaml-cinaps.spec new file mode 100644 index 0000000..5b9a6dd --- /dev/null +++ b/ocaml-cinaps.spec @@ -0,0 +1,100 @@ +# TESTING NOTE: The ppx_jane module is needed to run the tests. However, +# ppx_jane transitively requires this module. Therefore, we cannot run the +# tests at all until we are able to add ppx_jane to Fedora, and even then we +# will only be able to run the tests in non-bootstrap mode. + +%ifnarch %{ocaml_native_compiler} +%global debug_package %{nil} +%endif + +%global srcname cinaps + +Name: ocaml-%{srcname} +Version: 0.13.0 +Release: 1%{?dist} +Summary: Trivial Metaprogramming tool using the OCaml toplevel + +License: MIT +URL: https://github.com/janestreet/%{srcname} +Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz + +BuildRequires: help2man +BuildRequires: ocaml >= 4.07.0 +BuildRequires: ocaml-dune >= 1.5.1 +BuildRequires: ocaml-findlib +BuildRequires: ocaml-re-devel >= 1.8.0 +BuildRequires: ocaml-seq-devel + +%description +Cinaps is a trivial Metaprogramming tool for OCaml using the OCaml +toplevel. + +It is intended for two purposes: +- when you want to include a bit of generated code in a file, but writing + a proper generator/ppx rewriter is not worth it; +- when you have many repeated blocks of similar code in your program, to + help writing and maintaining them. + +It is not intended as a general preprocessor, and in particular can only +be used to generate static code that is independent of the system. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and signature files for +developing applications that use %{name}. + +%prep +%autosetup -n %{srcname}-%{version} + +%build +dune build + +%install +dune install --destdir=%{buildroot} + +# We install the documentation with the doc macro +rm -fr %{buildroot}%{_prefix}/doc + +%ifarch %{ocaml_native_compiler} +# Add missing executable bits +chmod a+x %{buildroot}%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmxs +%endif + +# Generate the man page +mkdir -p %{buildroot}%{_mandir}/man1 +help2man -N --version-string=%{version} %{buildroot}%{_bindir}/cinaps > \ + %{buildroot}%{_mandir}/man1/cinaps.1 + +%files +%doc CONTRIBUTING.md README.org +%license LICENSE.md +%{_bindir}/cinaps +%{_mandir}/man1/cinaps.1* +%dir %{_libdir}/ocaml/%{srcname}/ +%dir %{_libdir}/ocaml/%{srcname}/runtime/ +%{_libdir}/ocaml/%{srcname}/META +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cma +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmi +%ifarch %{ocaml_native_compiler} +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmxs +%endif + +%files devel +%{_libdir}/ocaml/%{srcname}/dune-package +%{_libdir}/ocaml/%{srcname}/opam +%ifarch %{ocaml_native_compiler} +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.a +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmx +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmxa +%endif +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmt +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmti +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.ml +%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.mli + +%changelog +* Thu Jan 2 2020 Jerry James - 0.13.0-1 +- Initial RPM diff --git a/sources b/sources new file mode 100644 index 0000000..9e0ceb4 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (cinaps-0.13.0.tar.gz) = 3112fb922a81fd4e645f5c20c4113c7e00995fd6a4fed12bc612da4427793695deb4ca54288b5eb616321a86fb089203d12eaade68982f4655e7d06b7126c798