From 8ea5e3ec1c2a922575fddb19b45c9b0ccad15327 Mon Sep 17 00:00:00 2001 From: Volker Diels-Grabsch Date: Tue, 30 Jun 2026 11:43:09 +0200 Subject: [PATCH] ocamlPackages.tw: init at 0-unstable-2026-06-23 --- pkgs/development/ocaml-modules/tw/default.nix | 55 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + pkgs/top-level/ocaml-packages.nix | 2 + 3 files changed, 59 insertions(+) create mode 100644 pkgs/development/ocaml-modules/tw/default.nix diff --git a/pkgs/development/ocaml-modules/tw/default.nix b/pkgs/development/ocaml-modules/tw/default.nix new file mode 100644 index 000000000000..55f73dbe105c --- /dev/null +++ b/pkgs/development/ocaml-modules/tw/default.nix @@ -0,0 +1,55 @@ +{ + buildDunePackage, + cascade, + cmdliner, + fetchFromGitHub, + fmt, + lib, + ocaml, +}: + +buildDunePackage (finalAttrs: { + pname = "tw"; + version = "0-unstable-2026-06-23"; + minimalOCamlVersion = "5.2"; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "samoht"; + repo = "tw"; + rev = "594d35df46ec2afcfe97632923331badf2940b93"; + hash = "sha256-vCRq0FCBIxc/AQg+R2Hig7nqwJGxgy2jedLbAsKaIoA="; + }; + + propagatedBuildInputs = [ cascade ]; + buildInputs = [ + cmdliner + fmt + ]; + + # Disabling tests because they check for byte-for-byte identical + # output with tailwindcss, so they are tied to a specific + # tailwindcss version, and would prevent independent upgrades of tw + # and tailwindcss. + doCheck = false; + + outputs = [ + "bin" + "lib" + "out" + ]; + + installPhase = '' + runHook preInstall + dune install --prefix=$bin --libdir=$lib/lib/ocaml/${ocaml.version}/site-lib + runHook postInstall + ''; + + meta = { + description = "Type-safe Tailwind CSS v4 in OCaml"; + homepage = "https://github.com/samoht/tw"; + mainProgram = "tw"; + license = lib.licenses.isc; + maintainers = [ lib.maintainers.vog ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5b1e4c87fc3a..287d06540253 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1213,6 +1213,8 @@ with pkgs; ) ); + tw = ocamlPackages.tw.bin; + wrapRetroArch = retroarch-bare.wrapper; # Aliases kept here because they are easier to use diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 4f5e425673bf..974759c5491b 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -2191,6 +2191,8 @@ let tuntap = callPackage ../development/ocaml-modules/tuntap { }; + tw = callPackage ../development/ocaml-modules/tw { }; + twt = callPackage ../development/ocaml-modules/twt { }; type_eq = callPackage ../development/ocaml-modules/type_eq { };