nixpkgs/pkgs/by-name/sp/sparkleshare/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

96 lines
1.9 KiB
Nix

{
appindicator-sharp,
bash,
coreutils,
fetchFromGitHub,
git,
git-lfs,
glib,
gtk-sharp-3_0,
lib,
makeWrapper,
meson,
mono,
ninja,
notify-sharp,
openssh,
openssl,
pkg-config,
stdenv,
symlinkJoin,
webkit2-sharp,
xdg-utils,
}:
stdenv.mkDerivation rec {
pname = "sparkleshare";
version = "3.38";
src = fetchFromGitHub {
owner = "hbons";
repo = "SparkleShare";
rev = version;
sha256 = "1a9csflmj96iyr1l0mdm3ziv1bljfcjnzm9xb2y4qqk7ha2p6fbq";
};
nativeBuildInputs = [
makeWrapper
meson
mono
ninja
pkg-config
];
buildInputs = [
appindicator-sharp
gtk-sharp-3_0
notify-sharp
webkit2-sharp
];
patchPhase = ''
# SparkleShare's default desktop file falls back to flatpak.
sed -ie "s_^Exec=.*_Exec=$out/bin/sparkleshare_" SparkleShare/Linux/SparkleShare.Autostart.desktop
# Nix will manage the icon cache.
echo '#!/bin/sh' >scripts/post-install.sh
'';
postInstall = ''
wrapProgram $out/bin/sparkleshare \
--set PATH ${symlinkJoin {
name = "mono-path";
paths = [
bash
coreutils
git
git-lfs
glib
mono
openssh
openssl
xdg-utils
];
}}/bin \
--set MONO_GAC_PREFIX ${lib.concatStringsSep ":" [
appindicator-sharp
gtk-sharp-3_0
webkit2-sharp
]} \
--set LD_LIBRARY_PATH ${lib.makeLibraryPath [
appindicator-sharp
gtk-sharp-3_0.gtk3
webkit2-sharp
webkit2-sharp.webkitgtk
]}
'';
meta = {
description = "Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows";
homepage = "https://sparkleshare.org";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ kevincox ];
mainProgram = "sparkleshare";
};
}