Compare commits

..

6 Commits

Author SHA1 Message Date
Richard W.M. Jones
93913770dd Bump and rebuild for updated ocaml-findlib. 2021-03-15 15:45:45 +00:00
Richard W.M. Jones
f54c212b3c Make ocaml-odoc dependency conditional. 2021-03-01 17:30:39 +00:00
Richard W.M. Jones
ef6a09ed5a OCaml 4.12.0 build 2021-03-01 16:57:59 +00:00
Jerry James
3585e93217 Spec file cleanup.
- Add -emacs patch to adapt to Emacs 27.1.
- Build documentation with odoc.
- Fix non-Unicode man page.
- Generate autoloads for the Emacs interface.
- Byte compile the Emacs interface.
2021-02-23 12:07:54 -07:00
Jerry James
3fe10ae709 Rebuild for changed dynlink dependency. 2021-02-21 10:25:00 -07:00
Fedora Release Engineering
56397441a1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 22:02:22 +00:00
2 changed files with 144 additions and 62 deletions

View File

@ -0,0 +1,31 @@
--- a/tools/ocp-indent.el 2019-10-23 07:04:10.000000000 -0600
+++ b/tools/ocp-indent.el 2021-02-23 09:00:39.282453922 -0700
@@ -28,7 +28,7 @@
;;; Code:
-(require 'cl)
+(require 'cl-lib)
(defgroup ocp-indent nil
"ocp-indent OCaml indenter binding configuration"
@@ -76,8 +76,8 @@ are blanks."
(list "--numeric"
"--lines" (format "%d-%d" start-line end-line))
(if ocp-indent-config (list "--config" ocp-indent-config) nil)
- (reduce (lambda (acc syn) (list* "--syntax" syn acc))
- ocp-indent-syntax :initial-value nil)))
+ (cl-reduce #'(lambda (acc syn) (cl-list* "--syntax" syn acc))
+ ocp-indent-syntax :initial-value nil)))
(defun ocp-indent-file-to-string (file)
(replace-regexp-in-string
@@ -126,7 +126,7 @@ buffer."
(delete-file errfile))
(save-excursion
(goto-char start)
- (mapcar
+ (mapc
#'(lambda (indent) (indent-line-to indent) (forward-line))
indents))
(when (ocp-in-indentation-p) (back-to-indentation))))

View File

@ -1,44 +1,52 @@
Name: ocaml-ocp-indent %ifnarch %{ocaml_native_compiler}
Version: 1.8.2 %global debug_package %{nil}
Release: 3%{?dist}.1.rvre0 %endif
Summary: A simple tool to indent OCaml programs
%global libname %(echo %{name} | sed -e 's/^ocaml-//') # Documentation adds a circular dependency, so by
# default we build without.
%bcond_with doc
%global srcname ocp-indent
Name: ocaml-%{srcname}
Version: 1.8.2
Release: 7%{?dist}
Summary: A simple tool to indent OCaml programs
# The entire source code is LGPLv2 with exceptions except # The entire source code is LGPLv2 with exceptions except
# src/approx_tokens.ml is QPL # src/approx_tokens.ml is QPL
License: (LGPLv2 with exceptions) and QPL License: (LGPLv2 with exceptions) and QPL
URL: https://github.com/OCamlPro/%{libname} URL: https://www.typerex.org/ocp-indent.html
Source0: https://github.com/OCamlPro/%{libname}/archive/%{version}/%{libname}-%{version}.tar.gz Source0: https://github.com/OCamlPro/%{srcname}/archive/%{version}/%{srcname}-%{version}.tar.gz
# Update the Emacs interface for Emacs 27.1
Patch0: %{name}-emacs.patch
BuildRequires: ocaml
BuildRequires: ocaml-dune
BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-cmdliner-devel
BuildRequires: ocaml-result-devel
# Required for tests, not available in Fedora
#BuildRequires: craml
BuildRequires: emacs BuildRequires: emacs
# For byte-compile elisp BuildRequires: emacs-tuareg
#BuildRequires: emacs-auto-complete BuildRequires: ocaml
#BuildRequires: emacs-tuareg BuildRequires: ocaml-cmdliner-devel >= 1.0.0
# The following two are not yet available in Fedora. BuildRequires: ocaml-dune >= 1.0
# So byte compilation is disabled BuildRequires: ocaml-findlib-devel
#BuildRequires: emacs-company %if %{with doc}
#BuildRequires: emacs-iedit BuildRequires: ocaml-odoc
%endif
BuildRequires: vim-enhanced BuildRequires: vim-enhanced
Requires: emacs-filesystem >= %{_emacs_version} Requires: emacs-filesystem >= %{_emacs_version}
Requires: vim-filesystem Requires: vim-filesystem
%description %description
Ocp-indent is based on an approximate, tolerant OCaml parser and a simple stack Ocp-indent is a simple tool and library to indent OCaml code. It is
machine ; this is much faster and more reliable than using regexps. Presets and based on an approximate, tolerant OCaml parser and a simple stack
configuration options available, with the possibility to set them project-wide. machine; this is much faster and more reliable than using regexps.
Supports most common syntax extensions, and extensible for others. Presets and configuration options are available, with the possibility to
set them project-wide. Ocp-indent supports most common syntax
extensions, and is extensible for others.
Includes: Includes:
- An indentor program, callable from the command-line or from within editors - An indentor program, callable from the command-line or from within
editors
- Bindings for popular editors - Bindings for popular editors
- A library that can be directly used by editor writers, or just for - A library that can be directly used by editor writers, or just for
fault-tolerant/approximate parsing. fault-tolerant/approximate parsing.
@ -51,68 +59,111 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
The %{name}-devel package contains libraries and signature files for The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}. developing applications that use %{name}.
%prep %prep
%setup -q -n %{libname}-%{version} %autosetup -n %{srcname}-%{version} -p1
%build %build
dune build %{?_smp_mflags} --profile=release dune build %{?_smp_mflags} --profile=release
%if %{with doc}
dune build %{?_smp_mflags} @doc
%endif
%install %install
dune install \ dune install --destdir=%{buildroot}
--destdir=%{buildroot} \
--prefix=%{_prefix} \
--libdir=%{_libdir}/ocaml \
--mandir=%{_mandir}
chmod 755 %{buildroot}%{_libdir}/ocaml/%{libname}/*/*.cmxs %if %{with doc}
# We do not want the dune markers
find _build/default/_doc/_html -name .dune-keep -delete
%endif
# We do not want the ml files
find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
# We install the documentation with the doc macro
rm -fr %{buildroot}%{_prefix}/doc
%ifarch %{ocaml_native_compiler}
# Add missing executable bits
find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
%endif
# The man page has A0 bytes for non-breaking spaces, but this is invalid UTF-8
sed -i 's/\xa0/\\ /g' %{buildroot}%{_mandir}/man1/ocp-indent.1
# Reinstall vim files to Fedora default location # Reinstall vim files to Fedora default location
mkdir -p %{buildroot}%{vimfiles_root} mkdir -p %{buildroot}%{vimfiles_root}
mv %{buildroot}%{_datadir}/%{libname}/vim/* %{buildroot}%{vimfiles_root} mv %{buildroot}%{_datadir}/%{srcname}/vim/* %{buildroot}%{vimfiles_root}
rmdir %{buildroot}%{_datadir}/%{libname}/vim rm -fr %{buildroot}%{_datadir}/%{srcname}
rmdir %{buildroot}%{_datadir}/%{libname}
# Reinstall documents using %%doc later # Generate the autoload file for the Emacs interface and byte compile
rm -fr %{buildroot}%{_prefix}/doc cd %{buildroot}%{_emacs_sitelispdir}
emacs -batch --no-init-file --no-site-file \
--eval "(progn (setq generated-autoload-file \"$PWD/ocp-indent-autoloads.el\" backup-inhibited t) (update-directory-autoloads \".\"))"
mkdir -p %{buildroot}%{_emacs_sitestartdir}
mv ocp-indent-autoloads.el %{buildroot}%{_emacs_sitestartdir}
%_emacs_bytecompile ocp-indent.el
cd -
%check %check
#Tests only run on a git checkout #Tests only run on a git checkout
# ./tests/test.sh # ./tests/test.sh
%files %files
%doc README.md CHANGELOG %doc README.md CHANGELOG
%license LICENSE %license LICENSE
%{_bindir}/* %{_bindir}/ocp-indent
%{_libdir}/ocaml/%{libname} %dir %{_libdir}/ocaml/%{srcname}/
%dir %{_libdir}/ocaml/%{srcname}/dynlink/
%dir %{_libdir}/ocaml/%{srcname}/lexer/
%dir %{_libdir}/ocaml/%{srcname}/lib/
%dir %{_libdir}/ocaml/%{srcname}/utils/
%{_libdir}/ocaml/%{srcname}/META
%{_libdir}/ocaml/%{srcname}/*/*.cma
%{_libdir}/ocaml/%{srcname}/*/*.cmi
%ifarch %{ocaml_native_compiler} %ifarch %{ocaml_native_compiler}
%exclude %{_libdir}/ocaml/%{libname}/*/*.a %{_libdir}/ocaml/%{srcname}/*/*.cmxs
%exclude %{_libdir}/ocaml/%{libname}/*/*.cmxa
%exclude %{_libdir}/ocaml/%{libname}/*/*.cmx
%endif %endif
%exclude %{_libdir}/ocaml/%{libname}/*/*.mli %{_emacs_sitelispdir}/ocp-indent.el{,c}
%exclude %{_libdir}/ocaml/%{libname}/*/*.ml %{_emacs_sitestartdir}/ocp-indent-autoloads.el
%{_emacs_sitelispdir}/* %{vimfiles_root}/indent/ocaml.vim
%{vimfiles_root}/*/* %{_mandir}/man1/%{srcname}.1*
%{_mandir}/man1/%{libname}*
%files devel %files devel
%ifarch %{ocaml_native_compiler} %if %{with doc}
%{_libdir}/ocaml/%{libname}/*/*.a %doc _build/default/_doc/*
%{_libdir}/ocaml/%{libname}/*/*.cmxa
%{_libdir}/ocaml/%{libname}/*/*.cmx
%endif %endif
%{_libdir}/ocaml/%{libname}/*/*.mli %{_libdir}/ocaml/%{srcname}/dune-package
%{_libdir}/ocaml/%{libname}/*/*.ml %{_libdir}/ocaml/%{srcname}/opam
%ifarch %{ocaml_native_compiler}
%{_libdir}/ocaml/%{srcname}/*/*.a
%{_libdir}/ocaml/%{srcname}/*/*.cmx
%{_libdir}/ocaml/%{srcname}/*/*.cmxa
%endif
%{_libdir}/ocaml/%{srcname}/*/*.cmt
%{_libdir}/ocaml/%{srcname}/*/*.cmti
%{_libdir}/ocaml/%{srcname}/*/*.mli
%changelog %changelog
* Sun Apr 25 2021 David Abdurachmanov <david.abdurachmanov@sifive.com> - 1.8.2-3.1.rvre0 * Mon Mar 15 2021 Richard W.M. Jones <rjones@redhat.com> - 1.8.2-7
- Rebuilt for Fedora RISCV, no changes - Bump and rebuild for updated ocaml-findlib.
* Wed Sep 02 2020 Richard W.M. Jones <rjones@redhat.com> - 1.8.2-3.1 * Mon Mar 1 16:57:58 GMT 2021 Richard W.M. Jones <rjones@redhat.com> - 1.8.2-6
- Bump release and rebuild. - OCaml 4.12.0 build
- Make ocaml-odoc dependency conditional.
* Tue Feb 23 2021 Jerry James <loganjerry@gmail.com> - 1.8.2-5
- Spec file cleanup
- Add -emacs patch to adapt to Emacs 27.1
- Build documentation with odoc
- Fix non-Unicode man page
- Generate autoloads for the Emacs interface
- Byte compile the Emacs interface
* Sat Feb 20 2021 Jerry James <loganjerry@gmail.com> - 1.8.2-5
- Rebuild for changed dynlink dependency
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 1.8.2-3 * Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 1.8.2-3
- OCaml 4.11.1 rebuild - OCaml 4.11.1 rebuild