mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-01 02:23:54 +00:00
76 lines
1.8 KiB
Nix
76 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
ocamlPackages,
|
|
copyDesktopItems,
|
|
makeDesktopItem,
|
|
wrapGAppsHook3,
|
|
gsettings-desktop-schemas,
|
|
enableX11 ? !stdenv.hostPlatform.isDarwin,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "unison";
|
|
version = "2.53.7";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "bcpierce00";
|
|
repo = "unison";
|
|
rev = "v${finalAttrs.version}";
|
|
hash = "sha256-QmYcxzsnbRDQdqkLh82OLWrLF6v3qzf1aOIcnz0kwEk=";
|
|
};
|
|
|
|
strictDeps = true;
|
|
|
|
nativeBuildInputs =
|
|
[
|
|
ocamlPackages.ocaml
|
|
ocamlPackages.findlib
|
|
]
|
|
++ lib.optionals enableX11 [
|
|
copyDesktopItems
|
|
wrapGAppsHook3
|
|
];
|
|
buildInputs = lib.optionals enableX11 [
|
|
gsettings-desktop-schemas
|
|
ocamlPackages.lablgtk3
|
|
];
|
|
|
|
makeFlags = [
|
|
"PREFIX=$(out)"
|
|
] ++ lib.optionals (!ocamlPackages.ocaml.nativeCompilers) [ "NATIVE=false" ];
|
|
|
|
postInstall = lib.optionalString enableX11 ''
|
|
install -D $src/icons/U.svg $out/share/icons/hicolor/scalable/apps/unison.svg
|
|
'';
|
|
|
|
dontStrip = !ocamlPackages.ocaml.nativeCompilers;
|
|
|
|
desktopItems = lib.optional enableX11 (makeDesktopItem {
|
|
name = finalAttrs.pname;
|
|
desktopName = "Unison";
|
|
comment = "Bidirectional file synchronizer";
|
|
genericName = "File synchronization tool";
|
|
exec = "unison-gui";
|
|
icon = "unison";
|
|
categories = [
|
|
"Utility"
|
|
"FileTools"
|
|
"GTK"
|
|
];
|
|
startupNotify = true;
|
|
startupWMClass = "Unison";
|
|
});
|
|
|
|
meta = {
|
|
homepage = "https://www.cis.upenn.edu/~bcpierce/unison/";
|
|
description = "Bidirectional file synchronizer";
|
|
license = lib.licenses.gpl3Plus;
|
|
maintainers = with lib.maintainers; [ nevivurn ];
|
|
platforms = lib.platforms.unix;
|
|
broken = stdenv.hostPlatform.isDarwin && enableX11; # unison-gui and uimac are broken on darwin
|
|
mainProgram = if enableX11 then "unison-gui" else "unison";
|
|
};
|
|
})
|