File ocaml-spawn.spec of Package ocaml-spawn

#
# spec file for package ocaml-spawn
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           ocaml-spawn
Version:        0.15.1
Release:        0
%{?ocaml_preserve_bytecode}
Summary:        Spawning sub-processes
License:        MIT
ExclusiveArch:  aarch64 ppc64 ppc64le riscv64 s390x x86_64
Group:          Development/Languages/OCaml
Url:            https://opam.ocaml.org/packages/spawn
Source0:        %name-%version.tar.xz
ExcludeArch:    riscv64
BuildRequires:  ocaml(ocaml_base_version) >= 4.05
BuildRequires:  ocaml-dune >= 2.8
BuildRequires:  ocaml-rpm-macros >= 20220409
BuildRequires:  ocamlfind(ppx_expect)
BuildRequires:  ocamlfind(threads)
BuildRequires:  ocamlfind(unix)

%description
Spawn is a small library exposing only one functionality: spawning sub-process.

It has three main goals:

1. provide missing features of Unix.create_process such as providing a
working directory

2. provide better errors when a system call fails in the
sub-process. For instance if a command is not found, you get a proper
[Unix.Unix_error] exception

3. improve performances by using vfork when available. It is often
claimed that nowadays fork is as fast as vfork, however in practice
fork takes time proportional to the process memory while vfork is
constant time. In application using a lot of memory, vfork can be
thousands of times faster than fork.

%package        devel
Summary:        Development files for %name
Group:          Development/Languages/OCaml
Requires:       %name = %version

%description    devel
The %name-devel package contains libraries and signature files for
developing applications that use %name.

%prep
%autosetup -p1

%build
dune_release_pkgs='spawn'
%ocaml_dune_setup
%ocaml_dune_build

%install
%ocaml_dune_install
%ocaml_create_file_list

%check
%ocaml_dune_test

%files -f %name.files

%files devel -f %name.files.devel

%changelog
openSUSE Build Service is sponsored by