0install/0install.spec
2024-07-17 10:48:46 -06:00

82 lines
2.8 KiB
RPMSpec

# PACKAGING NOTE: We do not currently build either the command-line tool or the
# GUI interface. They depend on obus (https://github.com/ocaml-community/obus)
# which cannot be built for the version of OCaml currently in Fedora. For now
# we only build the solver, which is the only part needed by opam anyway.
%global giturl https://github.com/0install/0install
Name: 0install
Version: 2.18
Release: %autorelease
Summary: Decentralized cross-distribution software installation system
License: LGPL-2.1-or-later
URL: https://0install.net/
VCS: git:%{giturl}.git
Source0: %{giturl}/releases/download/v%{version}/%{name}-%{version}.tbz
Source1: %{giturl}/releases/download/v%{version}/%{name}-%{version}.tbz.sig
# Key for Thomas Leonard <talex5@gmail.com>
Source2: 5DD58D70899C454A966D6A5175133C8F94F6E0CC.gpg
# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
ExcludeArch: %{ix86}
BuildRequires: gnupg2
BuildRequires: ocaml >= 4.08
BuildRequires: ocaml-dune >= 2.5
BuildRequires: ocaml-ounit2-devel
%global _desc %{expand:
Zero Install is a decentralized cross-distribution software installation
system. Other features include full support for shared libraries (with
a SAT solver for dependency resolution), sharing between users, and
integration with native platform package managers. It supports both
binary and source packages, and works on Linux, macOS, Unix and Windows
systems.}
%description %_desc
%package -n ocaml-0install-solver
Summary: Package dependency solver
%description -n ocaml-0install-solver %_desc
This package contains a package dependency resolver based on a SAT
solver. This was originally written for the 0install package manager,
but is now generic and is also used as a solver backend for opam.
The SAT solver is based on MiniSat (http://minisat.se/Papers.html) and
the application to package management is based on OPIUM (Optimal Package
Install/Uninstall Manager). 0install-solver uses a (novel?) strategy to
find the optimal solution extremely quickly (even for a SAT-based
solver).
%package -n ocaml-0install-solver-devel
Summary: Development files for %{name}-solver
Requires: ocaml-0install-solver%{?_isa} = %{version}-%{release}
%description -n ocaml-0install-solver-devel
The %{name}-solver-devel package contains libraries and signature files
for developing applications that use %{name}-solver.
%prep
%{gpgverify} --data=%{SOURCE0} --signature=%{SOURCE1} --keyring=%{SOURCE2}
%autosetup
%build
%dune_build -p 0install-solver
%install
%dune_install 0install-solver
%check
%dune_check -p 0install-solver
%files -n ocaml-0install-solver -f .ofiles
%doc CHANGES.md README.md
%license COPYING
%files -n ocaml-0install-solver-devel -f .ofiles-devel
%changelog
%autochangelog