Unverified Commit d23c1208 authored by Vincent Laporte's avatar Vincent Laporte Committed by GitHub
Browse files

ocamlPackages.oui: init at 0-unstable-2025-10-08 (#451607)

parents 0a6efbda ec79abfa
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
{
  lib,
  buildDunePackage,
  fetchFromGitHub,
  ounit2,
}:

buildDunePackage (finalAttrs: {
  pname = "0install-solver";
  version = "2.18";

  src = fetchFromGitHub {
    owner = "0install";
    repo = "0install";
    tag = "v${finalAttrs.version}";
    hash = "sha256-CxADWMYZBPobs65jeyMQjqu3zmm2PgtNgI/jUsYUp8I=";
  };

  doCheck = true;
  checkInputs = [
    ounit2
  ];

  meta = {
    description = "Package dependency solver";
    license = lib.licenses.lgpl21;
    maintainers = [ lib.maintainers.stepbrobd ];
    homepage = "https://0install.net";
  };
})
+50 −0
Original line number Diff line number Diff line
{
  lib,
  buildDunePackage,
  fetchFromGitHub,
  _0install-solver,
  alcotest,
  cudf,
}:

buildDunePackage (finalAttrs: {
  pname = "opam-0install-cudf";
  version = "0.5.0";

  src = fetchFromGitHub {
    owner = "ocaml-opam";
    repo = "opam-0install-cudf";
    rev = "v${finalAttrs.version}";
    hash = "sha256-TETfvR1Di4c8CylsKnMal/GfQcqMSr36o7511u1bYYs=";
  };

  propagatedBuildInputs = [
    cudf
    _0install-solver
  ];

  doCheck = true;
  checkInputs = [
    alcotest
  ];

  meta = {
    homepage = "https://github.com/ocaml-opam/opam-0install-cudf";
    description = "Opam solver using 0install backend using the CUDF interface";
    longDescription = ''
      Opam's default solver is designed to maintain a set of packages
      over time, minimising disruption when installing new programs and
      finding a compromise solution across all packages.

      In many situations (e.g. CI, local roots or duniverse builds) this
      is not necessary, and we can get a solution much faster by using
      a different algorithm.

      This package provides a generic solver library which uses 0install's
      solver library. The library uses the CUDF library in order to interface
      with opam as it is the format common used to talk to all the supported solvers.
    '';
    license = lib.licenses.isc;
    maintainers = [ lib.maintainers.stepbrobd ];
  };
})
+33 −0
Original line number Diff line number Diff line
{
  lib,
  buildDunePackage,
  base64,
  cmdliner,
  opam,
  opam-repository,
  opam-solver,
  opam-state,
  re,
}:

buildDunePackage {
  pname = "opam-client";

  inherit (opam) src version;

  configureFlags = [ "--disable-checks" ];

  propagatedBuildInputs = [
    base64
    cmdliner
    opam-repository
    opam-solver
    opam-state
    re
  ];

  meta = opam.meta // {
    description = "Actions on the opam root, switches, installations, and front-end";
    maintainers = with lib.maintainers; [ stepbrobd ];
  };
}
+35 −0
Original line number Diff line number Diff line
{
  lib,
  buildDunePackage,
  cudf,
  dose3,
  mccs,
  opam,
  opam-0install-cudf,
  opam-format,
  re,
  z3,
}:

buildDunePackage {
  pname = "opam-solver";

  inherit (opam) src version;

  configureFlags = [ "--disable-checks" ];

  propagatedBuildInputs = [
    cudf
    dose3
    mccs
    opam-0install-cudf
    opam-format
    re
    z3
  ];

  meta = opam.meta // {
    description = "This library is based on the Cudf and Dose libraries, and handles calls to the external solver from opam";
    maintainers = with lib.maintainers; [ stepbrobd ];
  };
}
+60 −0
Original line number Diff line number Diff line
{
  lib,
  buildDunePackage,
  fetchFromGitHub,
  cmdliner,
  fmt,
  markup,
  ocaml-crunch,
  opam-client,
  opam-format,
  ppx_deriving_yojson,
  ppx_expect,
  yojson,
}:

buildDunePackage (finalAttrs: {
  pname = "oui";
  version = "0-unstable-2025-10-08";

  minimalOCamlVersion = "4.10";

  src = fetchFromGitHub {
    owner = "OCamlPro";
    repo = "ocaml-universal-installer";
    rev = "2fe2e33c3f8e1744fdd4dab04458043451bf9f62";
    hash = "sha256-ALQIQ3Ab1Gs2xST9OwsO5IxixzgKlUg7uHZvfHMbv7Q=";
  };

  nativeBuildInputs = [
    ocaml-crunch
  ];

  propagatedBuildInputs = [
    cmdliner
    fmt
    markup
    opam-client
    opam-format
    ppx_deriving_yojson
    yojson
  ];

  # upstream tests are matching full library paths
  doCheck = false;
  checkInputs = [
    ppx_expect
  ];

  meta = {
    homepage = "https://github.com/OCamlPro/ocaml-universal-installer";
    description = "A tool that builds standalone installers for your OCaml applications";
    longDescription = ''
      oui is a command-line tool that generates standalone installers for
      Linux, Windows and macOS from your OCaml and non OCaml binaries.
    '';
    license = lib.licenses.lgpl21;
    maintainers = [ lib.maintainers.stepbrobd ];
    mainProgram = "opam-oui";
  };
})
Loading