Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
93913770dd | ||
|
f54c212b3c | ||
|
ef6a09ed5a | ||
|
3585e93217 | ||
|
3fe10ae709 | ||
|
56397441a1 | ||
|
ae4ff4d737 | ||
|
6791246c05 | ||
|
f3180e11af | ||
|
645e76a9d8 | ||
|
e46db14178 | ||
|
aea2b1545b | ||
|
9242f8cb63 | ||
|
7f4b528488 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/ocp-indent-1.7.0.tar.gz
|
/ocp-indent-1.7.0.tar.gz
|
||||||
|
/ocp-indent-1.8.2.tar.gz
|
||||||
|
31
ocaml-ocp-indent-emacs.patch
Normal file
31
ocaml-ocp-indent-emacs.patch
Normal 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))))
|
@ -1,44 +1,52 @@
|
|||||||
Name: ocaml-ocp-indent
|
%ifnarch %{ocaml_native_compiler}
|
||||||
Version: 1.7.0
|
%global debug_package %{nil}
|
||||||
Release: 8%{?dist}
|
%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,63 +59,137 @@ 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
|
||||||
|
* Mon Mar 15 2021 Richard W.M. Jones <rjones@redhat.com> - 1.8.2-7
|
||||||
|
- Bump and rebuild for updated ocaml-findlib.
|
||||||
|
|
||||||
|
* Mon Mar 1 16:57:58 GMT 2021 Richard W.M. Jones <rjones@redhat.com> - 1.8.2-6
|
||||||
|
- 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
|
||||||
|
- OCaml 4.11.1 rebuild
|
||||||
|
|
||||||
|
* Fri Aug 21 2020 Richard W.M. Jones <rjones@redhat.com> - 1.8.2-2
|
||||||
|
- OCaml 4.11.0 rebuild
|
||||||
|
|
||||||
|
* Sun Aug 9 2020 Robin Lee <cheeselee@fedoraproject.org> - 1.8.2-1
|
||||||
|
- Update to 1.8.2
|
||||||
|
|
||||||
|
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-13
|
||||||
|
- Second attempt - Rebuilt for
|
||||||
|
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-12
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue May 05 2020 Richard W.M. Jones <rjones@redhat.com> - 1.7.0-11
|
||||||
|
- OCaml 4.11.0+dev2-2020-04-22 rebuild
|
||||||
|
|
||||||
|
* Tue Apr 21 2020 Richard W.M. Jones <rjones@redhat.com> - 1.7.0-10
|
||||||
|
- OCaml 4.11.0 pre-release attempt 2
|
||||||
|
|
||||||
|
* Fri Apr 03 2020 Richard W.M. Jones <rjones@redhat.com> - 1.7.0-9
|
||||||
|
- Update all OCaml dependencies for RPM 4.16.
|
||||||
|
|
||||||
* Wed Feb 26 2020 Richard W.M. Jones <rjones@redhat.com> - 1.7.0-8
|
* Wed Feb 26 2020 Richard W.M. Jones <rjones@redhat.com> - 1.7.0-8
|
||||||
- OCaml 4.10.0 final.
|
- OCaml 4.10.0 final.
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (ocp-indent-1.7.0.tar.gz) = 5b28ae8695612c95cb0f5748de9b9f01d8ef4ad18b31340dc526ccae5fb1b6ee7e12024ff1beb817a43796183a83bca144222ca2d77d7750f2ff56108b5fa350
|
SHA512 (ocp-indent-1.8.2.tar.gz) = c5f8b63d6d3baabbadffba159d485f54f6e903eaa59a58b6df509e12e679b5b63a1cf7734d336d6b3456ea6ac74e42c58889199f2a3ed584566589d0c9bbfef5
|
||||||
|
Loading…
Reference in New Issue
Block a user