# 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 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